2010-08-08 52 views

回答

1

如果你不想用一個標誌變量按照@nigative做到這一點,你可以用下面的啓動和停止方法:

$("#lop").sortable({ 
    revert: '100', 
    placeholder: 'auo', 
    start: function(event, ui) { 
     ui.item[0].oldclick = ui.item[0].onclick; 
     ui.item[0].onclick = null;  
    }, 
    stop: function(event, ui) { 
     ui.item[0].onclick = ui.item[0].oldclick; 
    } 
}); 
+0

真的很好的解決方案!感謝名單! – Peter 2010-08-08 08:11:47

+0

這對我來說不起作用,因爲當我丟棄物品時,onclick仍然被檢測到。我可以在恢復onclick函數時使用setTimeout解決這個問題:'setTimeout(function(){ui.item [0] .onclick = ui.item [0] .oldclick},500);' – vertigoelectric 2013-01-30 07:45:15

3

可以使用startstop選項:

$(".selector").sortable({ 
    start: function(event, ui) { ... }, 
    stop: function(event, ui) { ... } 
}); 

只需創建一個標誌和排序開始時設置爲true和false,如果排序結束,並在您的onclick功能首先檢查標誌:

var isBeingSorted = false 

$(".selector").sortable({ 
    start: function(event, ui) { isBeingSorted = true; }, 
    stop: function(event, ui) { isBeingSorted = false; } 
}); 

function printAlert(message){ 
    if(!isBeingSorted) 
     alert(message); 
} 

當然你onclicks應該像onclick="printAlert('sdfsdf')"

更多選項看起來here

+0

謝謝你的快速安努爾! – Peter 2010-08-08 07:13:13