0
On“over”-ing我正在用$(this).parent.empty()重建可拖拽元素。append(...) (它们基本上包含<li>
元素)的jQuery UI droppable“out”event does not trigger
的问题是,实际的元素,等待着“走出去”的功能被触发也将被删除 - >出不能被解雇
是有这种问题的任何解决方案?
On“over”-ing我正在用$(this).parent.empty()重建可拖拽元素。append(...) (它们基本上包含<li>
元素)的jQuery UI droppable“out”event does not trigger
的问题是,实际的元素,等待着“走出去”的功能被触发也将被删除 - >出不能被解雇
是有这种问题的任何解决方案?
您是否尝试过.live。如果您在已经加载DOM之后创建元素,这将重新添加它。所以如果你有一些像$(“#mylist li”)。live('handler',function(){});林不知道你在做什么,但它会是这样的。
你可以在这里看到一些例子: http://api.jquery.com/live/
而且在脸上,你可以做多个处理程序。
$("#mylist li").live("mouseover mouseout", function(event) {
if (event.type == "mouseover") {
// do something on mouseover
} else {
// do something on mouseout
}
});
代表赫斯基建议:
$("#mylist").delegate("li", "mouseover mouseout", function(event) {
if (event.type == "mouseover") {
// do something on mouseover
} else {
// do something on mouseout
}
});
您应该避免使用'live',这是非常耗资源。代替'live',尝试'delegate',它可以绑定到将接收冒泡事件的元素。 – Husky
@赫斯基我之前没有使用委托,所以我不想给错误的代码,但你是对的。它看起来更高效,因为它不搜索整个DOM。我更新了我的答案,让我知道如果这是不正确的。谢谢! – Matt
你的代码看起来很好。好一个! – Husky