在拖动过程中更改jQuery可拖动助手

时间:2012-07-24 18:48:08

标签: javascript jquery jquery-ui jquery-ui-draggable

我正在尝试根据拖动元素的上下文来进行可拖动的帮助器更改(表示您可以通过更改帮助程序将元素放在那里)。

我心中有两个想法:

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

  2. 在拖动事件中,更改帮助程序。这听起来是最好的选择。问题是我没有找到如何将帮助器更改为特定的DOM元素(只有接受的值是“克隆”,“原始”和函数。

  3. 我错过了什么或者这不可能吗?

2 个答案:

答案 0 :(得分:3)

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

$('#list').draggable({helper:'clone'});

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

UI参数指的是拖动的元素。 ui.helper是当前助手的实例,可以在运行中进行修改。

答案 1 :(得分:0)

在我的情况下,draggable是来自Adobe Edge的符号所以我不得不在一个类中播种其中一个“层”,然后我可以在拖动时更改。因此,当符号被创建时,我就这样做了;

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

这个类赋值将使用帮助器克隆(与对象数据不同)然后在可拖动内部我可以执行此操作;

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