中間列在元素上方拖動時應更改寬度。它一直工作,直到我點擊代替中間欄的html的替換按鈕。然後事件停止被觸發。據我所知.on()
應該可以處理這種情況,還是我錯了?替換元素後未觸發的分揀和整理事件
這是一個簡單的演示這表明了問題:https://jsfiddle.net/shuetvyj/3/
HTML:
<div class="members-column">
<div class="sort"> 1 </div>
<div class="sort"> 1 </div>
</div>
<div id="groupB" class="members-column">
</div>
<div class="members-column">
<div class="sort"> 2 </div>
</div>
<a href="" id="replace">replace groupB</a>
的Javascript:
$(".members-column").sortable({
items: ".sort",
connectWith: ".members-column"
});
$("#groupB").on("sortover", function() {
console.log('overB');
$('#groupB').css('min-width','80px');
});
$("#groupB").on("sortout", function() {
console.log('outB');
$('#groupB').css('min-width','');
});
$("#replace").on("click", function(e) {
e.preventDefault();
$("#groupB").replaceWith('<div id="groupB" class="members-column"></div>');
});
好的,我試過了:https://jsfiddle.net/shuetvyj/4/。它仍然不起作用。 – chriemmy
,這可能與刪除列也會破壞可排序的行爲有關。從外觀上看,你將不得不重新初始化整個排序結構。 在旁註中,爲什麼不清除中間列的內容? –
是的,你是對的。在這個例子中,我只替換了一個元素,但在實際應用中,很多其他的東西都被替換了,我寧願不重寫處理它的代碼。那謝謝啦! – chriemmy