微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sortablejs 方法不可用

如何解决sortablejs 方法不可用

使用 Rails 6 实现 sortablejs。一切顺利,直到我尝试使用 toArray 方法,现在我的生活中我无法让事情工作。

我在刺激控制器中实例化 sortable 如下:

import { Controller } from "stimulus";
import Sortable from "sortablejs"

export default class extends Controller {
  connect() {
    this.sortable = Sortable.create(this.element,{
        animation: 150,filter: 'input,button,',onEnd: this.end.bind(this)
    })

console.log($("#sort-me"));
}  
end(event) {
    console.log(event)
    var sortable = this.sortable;
    let combo_id = event.item.dataset.id
    let entry_id = combo_id.substr(0,combo_id.indexOf("_"));
    let id = combo_id.substr(combo_id.indexOf("_") + 1,combo_id.length);

    let current_order = $('#image_order_array_' + entry_id).val();
    let current_position = $('#image_position_' + id).val();

    let data = new FormData()
    data.append("current_order",current_order)
    data.append("current_position",current_position)
    data.append("new_position",event.newIndex)
    data.append("old_position",event.oldindex)

    var idsInorder = $("#sort-me").sortable("toArray");

    Rails.ajax({
      url: this.data.get("url").replace(":id",id),type:'PATCH',data: data      
  
    })

    }   
 }

当结束事件触发时,我得到:

 drag_controller.js:40 Uncaught TypeError: $(...).sortable is not a function

我已经尝试了许多不同的排列,但无法正常工作。基本上,一旦对项目进行排序,我就需要获取 toArray 值,以便我知道项目的当前顺序。

解决方法

答案:this.sortable.toArray

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。