4
我有一個可拖動的ul,並且在拖動過程中存在錨點,我想在拖動過程中停用這些錨點,以便一旦draggable.stop ()事件觸發器。帶有可點擊對象的jQuery可拖動列表 - 防止點擊拖動
<ul class="draggable-list">
<li class="list-item"><a href="#">clickable child</a></li>
<li class="list-item"><a href="#">clickable child</a></li>
...
</ul>
這是一個類似的情況,以這樣的: Preventing click event with jQuery drag and drop
但我可拖動的項目是不是我點擊的項目,我可拖動的項目包含我點擊的項目。
我試着從上面的鏈接代碼,但因爲它引用拖動對象,它不會阻止點擊正確:
$("ul.draggable-list").draggable({
start: function(event, ui) {
ui.helper.bind("click.prevent",
function(event) { event.preventDefault(); });
},
stop: function(event, ui) {
setTimeout(function(){ui.helper.unbind("click.prevent");}, 300);
}
})
我想這一點,直接指向的元素我要禁用,但是這必須在發起第一拖曳嘗試點擊,然後阻止所有點擊(拖動或沒有)的影響算賬:
$("ul.draggable-list").draggable({
start: function() {
$(".list-item a").bind("click.prevent",
function(event) { event.preventDefault(); });
},
stop: function() {
setTimeout(function(){$(".list-item a").unbind("click.prevent");}, 300);
}
})
我不確定如何改變ui.helper綁定,這樣它就是b引入可點擊的子元素而不是可拖動的父元素。