Javascript 在拖动过程中更改jQuery可拖动辅助对象

Javascript 在拖动过程中更改jQuery可拖动辅助对象,javascript,jquery,jquery-ui,jquery-ui-draggable,Javascript,Jquery,Jquery Ui,Jquery Ui Draggable,我试图根据被拖动元素所在的上下文更改可拖动的辅助对象(表示可以通过更改辅助对象将元素拖放到该位置) 我有两个想法: 将helper声明为函数,并返回相应的helper。不幸的是,该函数只在拖动开始时调用一次 在拖动事件中,更改辅助对象。这听起来是最好的选择。问题是,我找不到如何将helper更改为特定的DOM元素(唯一接受的值是“clone”、“original”和函数) 我是否遗漏了什么或这是不可能的?您可以在拖动事件中访问帮助程序: $('#list').draggable({helper:

我试图根据被拖动元素所在的上下文更改可拖动的辅助对象(表示可以通过更改辅助对象将元素拖放到该位置)

我有两个想法:

  • 将helper声明为函数,并返回相应的helper。不幸的是,该函数只在拖动开始时调用一次

  • 在拖动事件中,更改辅助对象。这听起来是最好的选择。问题是,我找不到如何将helper更改为特定的DOM元素(唯一接受的值是“clone”、“original”和函数)


  • 我是否遗漏了什么或这是不可能的?

    您可以在拖动事件中访问帮助程序:

    $('#list').draggable({helper:'clone'});
    
    $("#list").bind("drag", function(event, ui) {
        ui.helper.css("background-color", "red");
    });
    

    UI参数指的是被拖动的元素。UI.helper是当前helper的实例,可以动态修改。

    在我的例子中,可拖动的是来自Adobe Edge的一个符号,因此我必须在一个类中为其中一个“层”设定种子,然后在拖动时更改。因此,当创建符号时,我这样做了

    drag.$("drag_label").addClass("dragLabel");
    
    这个类分配将通过helper(与对象数据不同)进行克隆,然后在draggable中我可以这样做

    start: function(event, ui) {
        $(ui.helper).find(".dragLabel").css("color", "#FF0000");
        ...
    },