我正在使用JQuery .Html()使用此代码在我的页面上交换div:
$('#item1').html($('#item8').html());
$('#item8').html('<p>sdsdsd</p>');
我发现这很好用,但JQuery方法停止工作。所以div#item1将有一个切换例如,它将正常工作,直到我使用.html()。
有没有解决方法重新绑定JQuery来解决这个问题?
谢谢!
答案 0 :(得分:4)
使用.live
,它会起作用
答案 1 :(得分:4)
您可以将节点从一个容器移动到另一个容器,而不是获取元素的HTML然后让浏览器将其重新分析到另一个元素中:
var $item8 = $('#item8');
$('#item1').empty().append($item8.contents());
$item8.html('<p>sdsdsd</p>');
这将保留已创建元素的任何当前绑定,因此无需使用live()
或重新绑定这些事件。
live()
,或者更确切地说,delegate()
仍然是一个不错的替代解决方案。
答案 2 :(得分:1)
使用.delegate
Docs请参阅Jquery live() vs delegate(),了解为何delegate
使用live
。
$('itemParent').delegate('#item8', 'click', function(){});