Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
328 views
in Technique[技术] by (71.8m points)

替换html元素,不解绑事件,应该怎么做?

>     'click .enable': function(e, value, row, index) {
>             var that = $(this);
> 
>             // console.log(row);
>             // console.log($(that).closest("tr").find(".stop"));
>             $(that).closest("tr").find(".stop").replaceWith('<span class="label label-success start">已启用</span>');
>             $(that).replaceWith('<a class = "disable btn blue btn-xs blue-stripe" href="javascript:void(0)">停用</a>');
>             console.log($(that));
> 
> 
> 
>         },
>         'click .disable': function(e, value, row, index) {
>             var that = $(this);
> 
>             $(that).closest("tr").find(".start").replaceWith('<span class="label label-primary stop">已停用</span>');
>             $(that).replaceWith('<a class = "enable btn green btn-xs green-stripe" href="javascript:void(0)">启用</a>');
> 
>         }
目前用了relaceWith方法替换所选择的元素,但是事件也销毁了,请问大家有什么好的办法。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

代码没看太懂,如果是绑定事件的DOM结构被拿掉了的话,可以绑到它的父级做事件代理。

另外,事件处理里的this已经被$包装过也缓存过了,就不要再次包装了吧。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...