所以我有一个表单,我使用 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-content 部门(它的多个实例)中安装了一个声音管理器插件。现在在 ajax 提交之后,该 soundmanager 插件停止工作,因为我假设,由于 soundmanager 在就绪事件中加载,它在 ajax 提交和 replaceWith 之后不会执行,因此它停止工作。
有什么办法可以规避这些问题?我是新来的查询,如果我做错了,请指导我正确的方向。提前非常感谢。
编辑:事实证明,如果我包含 $.getScript("/static/js/360player.js"); 它工作正常。没有一种方法可以将事件附加到使用 jquery replaceWith 命令替换的元素上。'On' 事件似乎根本不起作用。
Edit2:事实证明,我在错误的分区上使用了“on”。我的错 :(