当我替换一个元素以将DOM从DOM中取出时,请将其重新插入,注册的事件不会触发。我需要事件保持原样。
这是我的Javascript
var replacement = $(document.createElement('span')); var original = $(this).replaceWith(replacement); replacement .css('background-color','green') .text('replacement for ' + $(this).text()) .click(function() { replacement.replaceWith(original); });
在演示中,单击元素时,将使用replaceWith替换为另一个元素。当您单击新元素时,将使用replaceWith替换为原始元素。但是,点击处理程序不再工作(我认为应该)。
解决方法
因为当您替换原始元素时,绑定到它的事件将被删除。调用replace.replaceWith(原始)后,您需要将click事件处理程序重新附加到原始文件:
$(function() { function replace() { var replacement = $(document.createElement('span')); var original = $(this).replaceWith(replacement); replacement .css('background-color','green') .text('replacement for ' + $(this).text()) .click(function() { replacement.replaceWith(original); original.click(replace); }); } $('.x').click(replace); });
原文地址:https://www.jb51.cc/jquery/182390.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。