jquery replaceWith之后脚本停止工作
scripts stop working after jquery replaceWith
所以我有一个使用jquery-post方法提交的表单,并用ajax返回的数据替换为除法的内容。这是代码:
$(".filter_field").change(function() {
$.post("/business/feedbacks/", $("#filter_form").serialize(),
function(data) {
$('#table-content').replaceWith($('#table-content', $(data)));
});
});
现在我用这种方法面临两个问题:
1) 我还使用了一个重置按钮,它只需将表单的字段值重置为初始值,然后触发如下代码中的更改事件:
$('#filter_reset').click(function () {
$(':input','#filter_form')
.not(':button, :submit, :reset, :hidden')
.val('')
.removeAttr('checked')
.removeAttr('selected');
$(".filter_field").trigger('change');
});
现在,每当我单击重置按钮时,它都会重置表单的字段,并通过上面描述的更改事件使用ajax提交表单。到目前为止还不错,但现在我再也无法触发更改事件了。现在,无论我现在点击表单中的哪个字段,它都不再使用ajax提交表单。
2) 我在#table内容部门安装了一个soundmanager插件(它的多个实例)。现在,在ajax提交之后,soundmanager插件停止工作,因为我认为,当soundmanager在就绪事件中加载时,它在ajax提交和replaceWith之后不会执行,因此它停止工作。
有没有绕过这些问题的解决方案?我是新来的,所以很抱歉,如果我做错了事情,请引导我朝着正确的方向前进。提前非常感谢。
编辑:事实证明,如果我包含$.getScript("/static/js/360player.js");它工作正常。难道没有一种方法可以使用jquery replaceWith命令将事件附加到替换的元素上吗?'On事件似乎根本不起作用。
伊迪丝2:原来我在一个错误的除法上用了on。我的缺点:(
当替换元素时,还将移除任何附加的事件处理程序。您需要使用委派将事件处理程序绑定到现有元素和未来元素。。。
$("body").on("change", ".filter_field", function() {
$.post("/business/feedbacks/", $("#filter_form").serialize(),
function(data) {
$('#table-content').replaceWith($('#table-content', $(data)));
});
});
不确定你的第二个问题,但听起来也需要类似的方法。
相关文章:
- 重新启动jquery脚本后,角度停止工作
- 避免在变量之一未定义所有脚本停止工作时出错
- 知道为什么我的简单脚本在页面中途停止工作
- 当我包含 php 脚本时,PHP/javascript 脚本停止工作
- jquery replaceWith之后脚本停止工作
- jQuery:脚本突然停止工作
- 安装SSL后,某些脚本停止工作
- Greasemonkey脚本停止工作,出现错误:unsafeWindow.document.watch不是函数
- 添加<脚本>元素时,CSS 翻译过渡停止工作
- jQuery脚本停止工作1.7 -知道为什么吗?
- 拖放脚本只工作一次,但停止工作[没有jQuery]
- 当此脚本嵌入到页面中时,Sharepoint导航将停止工作
- 脚本在一个页面,停止工作时,从其他页面的内容与不同的脚本
- 脚本在第一次运行后停止工作
- Jquery在添加加载额外内容的脚本后停止工作
- Javascript脚本停止工作,我不知道为什么
- 添加带有pagelme的帖子后,脚本停止工作
- 包括不引人注目的ajax使所有脚本停止工作
- 脚本在对WebGrid进行分页后停止工作
- 将sPagination添加到我的jQuery数据表脚本会导致它停止工作