JQuery Ajax用JQuery函数替换项目
JQuery Ajax Replacing items with Jquery functions on it
我的问题是……
我使用ajax和jquery来填写表单…用户在select中选择一些东西,并且,当他选择了这个或那个,ajax返回数据,并且该数据被放置到表单中…
有时,使用ajax数据返回创建新元素,例如:
ajax返回"blahblah"然后我把它放到我的表单中,像这样:
$("#myDiv").empty();
$("#myDiv").html(ajaxReturn);
很好!BUT:
我放入表单的新元素不再被我的jquery观察到…!我有一个这样的函数:
$("#xxxx").on("change",function(){
alert("something");
});
这个函数对于我在PAGE LOAD的表单中的元素非常有效,一旦这个元素被替换为另一个来自我的ajax调用,即使它有相同的ID作为前一个,对它的操作不再被JQuery发现…
我如何解决这个问题?
(我真的需要替换我的选择与我的ajax返回,因为有时它不再是一个选择,但输入文本我需要…)
谢谢你的建议
事件处理程序仅绑定到当前选定的元素;它们必须在代码进行事件绑定调用时存在于页面上。
当你使用ajax替换元素时
你需要使用事件委派使用.on()委派事件方法。
使用$("#myDiv").on('change', "#xxxx", function(){
//Your code
});
委托事件的优点是,它们可以处理来自后代元素的事件,这些事件稍后会添加到文档中。通过选择在附加委托事件处理程序时保证存在的元素,我们可以使用委托事件将click事件绑定到动态创建的元素,还可以避免频繁地附加和删除事件处理程序。
当页面准备好时,将事件委托给最近的静态父节点:
$("#myDiv").on("change", "#xxxx", function(){
alert("something");
});
也不需要第一行,因为它取代了这个div的所有innerHTML:
// $("#myDiv").empty(); <----you can remove it.
$("#myDiv").html(ajaxReturn);
相关文章:
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 学生搜索项目jquery/javascript
- 无法在jquery中向上或向下移动列表中的多个项目
- 使用jQuery插入HTML页面的第一个项目缺少结束标记
- 使用JavaScript或jQuery检查单选按钮选择是否与数组中的项目匹配
- JQuery和Javascript没有'在我的项目中不起作用,但在网络上起作用
- jQuery:根据select选项中的每页项目进行分页
- 我在页面中使用的jQuery UI可排序项目;不起作用
- 如何使用jquery将所选项目从一个下拉组列表(optgroup)移动到另一个下拉列表(optgroup)
- jQuery无限循环,动画化许多项目
- 如何让li项目在这个jQuery列表中滑动和/或淡出视图
- 根据jQuery针对特定项目
- 在此项目中使用jQuery或JavaScript中的选择器
- jquery ias插件不适用于我的网站,加载更多项目不起作用
- 为图像滑块jquery添加项目符号功能
- 第一个jquery项目-在函数中使用处理程序来模块化它们
- 第一个JQuery项目..有点卡住了
- 如何检查PHP和jquery项目中代码重定向的位置
- 将我的Jquery项目更改为纯javascript
- JQuery项目.视图中的ID