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



我正试图根据拖动元素所在的上下文来更改可拖动的辅助对象(表示可以通过更改辅助对象将元素放置在那里)。

我脑子里有两个想法:

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

  2. 在拖动事件中,更改辅助对象。这听起来是最好的选择。问题是,我不知道如何将帮助程序更改为特定的DOM元素(唯一接受的值是"克隆"、"原始"和函数。

我是错过了什么,还是这不可能?

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

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

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

在我的例子中,draggable是Adobe Edge的一个符号,所以我必须为其中一个"层"播种一个类,然后我可以在拖动时更改它。所以当这个符号被创造出来的时候,我就这样做了;

drag.$("drag_label").addClass("dragLabel");

这个类赋值将使用helper进行克隆(与对象数据不同),然后在draggable中我可以这样做;

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

最新更新