使用html()后JQuery重新绑定

时间:2011-09-02 14:12:30

标签: jquery html

我正在使用JQuery .Html()使用此代码在我的页面上交换div:

    $('#item1').html($('#item8').html());
    $('#item8').html('<p>sdsdsd</p>');

我发现这很好用,但JQuery方法停止工作。所以div#item1将有一个切换例如,它将正常工作,直到我使用.html()。

有没有解决方法重新绑定JQuery来解决这个问题?

谢谢!

3 个答案:

答案 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(){});