jQuery UI Draggable'stop'事件被调用了太多次?

时间:2010-06-17 16:11:27

标签: javascript jquery jquery-ui

我有一种感觉,我要么误解'停止'事件,要么不做正确的事情,但是当元素被绑定时,似乎被多次调用。

makeAllDragable = function () {
    $(".test-table").draggable({
        start: function (event, ui) { $(this).click(); },
        stop: function (event, ui) { foo() }
    }).click(function () {
        selectTable($(this));
    });
}

foo = function () {
    alert("test");
}

在这个例子中,foo被调用了大约30次,不应该只是当我释放拖动时? jQuery文档实际上并没有说出哪一个在哪里。

1 个答案:

答案 0 :(得分:2)

事实证明,我在原始问题中写的上述代码并不是我正在使用的代码,我实际上已经调用了foo():

makeAllDragable = function () {
    $(".test-table").draggable({
        start: function (event, ui) { $(this).click(); },
        stop: function (event, ui) { foo() }
    }).click(function () {
        foo(); /*difference here*/
    });
}

无论出于何种原因,当函数也出现在stop()事件中时,拖动它会反复引发click()函数。至少这是表面上似乎发生的事情。