中间列在元素上方拖动时应更改宽度。它一直工作,直到我点击代替中间栏的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