jQuery replaceWith()后JavaScript断开连接
JavaScript disconnect after jQuery replaceWith()
在我当前创建的应用程序中,我对服务器进行了几次AJAX调用,并用部分视图替换了页面的一部分。除了使用jQuery replaceWith()
函数"替换"的按钮外,一切似乎都正常。
在我的实际代码中,我将替换整个<div>
,而不仅仅是一个按钮,这里的代码将有助于说明我的问题。
当点击按钮时,JavaScript会被调用,因此,该按钮会被更新。但是,再次尝试单击该按钮,将不会调用或执行相同的JavaScript。这里有一些脱节,我错过了。(在我看来,每次点击类为"updateButton"的按钮时,都应该执行javascript。)请帮帮我。
感谢
事件委派。
$(document).on('click','.updateButton',function (e) {
e.preventDefault();
var now = new Date().getTime();
var newButton = "<span class='btn btn-info updateButton'>Update Button " + now + "</span>"
$(this).replaceWith(newButton);
});
演示:http://jsfiddle.net/D2RLR/896/
与其将事件绑定到将被删除的按钮(从而丢失事件绑定),不如将其绑定到未被删除但却是该按钮祖先的元素。
不要将事件处理程序绑定到文档上(如Kevin B的回答中所示),只需将其重新绑定到您创建的新按钮即可替换旧按钮。这是一种更有效的事件处理方法,因为在事件触发之前,事件不需要从DOM树一直冒泡到文档。
http://jsfiddle.net/D2RLR/900/
var replaceBtn = function(domBtn,e) {
e.preventDefault();
var now = new Date().getTime();
var newButton = $("<span class='btn btn-info updateButton'>Update Button " + now + "</span>");
newButton.on('click',function(event) {
replaceBtn(this,event);
});
$(domBtn).replaceWith(newButton);
}
$('.updateButton').click(function(event) {
replaceBtn(this,event)
});
相关文章:
- Web 地址虚拟目录会断开外部 JavaScript 链接,因此找不到文件
- jQuery replaceWith()后JavaScript断开连接
- 如何断开函数内部的循环并返回该函数的值?(Javascript)
- Javascript 中的 Hashtag RegExp 会断开与锚点和 HTML 实体的链接
- 如何在 javascript 中检测与 MJPEG 流的断开连接
- JavaScript 错误:“调用的对象已与其客户端断开连接”在 IE8 中的 window.open 上
- JavaScript异常”;调用的对象已与其客户端断开连接"打开(..)
- 如何断开JavaScript弹出窗口与打开程序的连接
- WebStorm调试javascript停止并断开连接的速度太快了
- 响应元素显示:无;在移动宽度,然后通过javascript按钮返回,但显示的链接断开:block;
- 如何使用播放器JavaScript检测断开的视频链接
- Javascript/JQuery-如何为损坏的图像重置onError函数?(对于第二个断开的图像)
- Javascript错误“;被调用的对象已与其客户端断开连接”;创建ActiveXObject时
- 将HTML代码与javascript断开链接的正则表达式
- 在断开连接后检索html/javascript网页
- Javascript:断开链接检查器-优点和缺点
- 如何在JavaScript中检测互联网连接是否断开或域名/URL不存在
- 我使用服务器发送事件(和Javascript/PHP)的连接会立即断开
- JavaScript ISO8601 3.5.2 时间(24 小时)数据类型与日历断开连接
- 如何在 javascript 中完全断开/返回另一个函数中的循环函数