【发布时间】:2011-10-29 15:10:50
【问题描述】:
在“over”时,我正在通过 $(this).parent.empty().append(...) 重建可放置元素
(它们基本上由<li> 元素组成)
问题在于,等待触发“out”函数的实际元素也被删除了 --> out 不能被触发
这类问题有解决办法吗?
【问题讨论】:
标签: jquery jquery-ui draggable droppable out
在“over”时,我正在通过 $(this).parent.empty().append(...) 重建可放置元素
(它们基本上由<li> 元素组成)
问题在于,等待触发“out”函数的实际元素也被删除了 --> out 不能被触发
这类问题有解决办法吗?
【问题讨论】:
标签: jquery jquery-ui draggable droppable out
您是否尝试过 .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,它可以绑定到将接收冒泡事件的元素。