2010-06-17 77 views
3

我有一种感觉,我要么误解'停止'事件,要么做得不正确,但它似乎被多次调用,而元素绑定被拖动。jQuery UI Draggable“停止”事件调用次数太多?

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

适合我。当释放鼠标按钮时调用'.stop()'。 http://jsfiddle.net/jRjup/ – user113716 2010-06-17 16:33:10

+0

该示例给我一个来自网站的JS错误,表示“控制台未定义”形式的网站,所以我无法检查出来。 – 2010-06-17 17:00:58

+1

只需注释'console'行。我只需要创建'selectTable',这样你的'c​​lick'就可以调用一个函数。 http://jsfiddle.net/jRjup/2/ – user113716 2010-06-17 17:11:28

回答

2

事实证明,上面的代码,我在我原来的问题写了是不是我用的工作,我其实是有富()称为像这样:

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

无论出于何种原因,拖动它提出当函数也出现在stop()事件中时,会重复使用click()函数。至少在表面上看起来至少是这样。