jquery如何访问插入到DOM的html上的事件
jquery how to access events on html that was inserted to the DOM
在我的web应用程序中,我有一个加载时出现的15个项目的无序列表。我正在使用ajax从API抓取100个新项目,并通过使用.append(html)
将它们添加到当前的ul
。每个li
旁边都有一个复选框,当被选中时需要调用some_function
。
已呈现的元素可以访问some_function
,但不能访问新加载的元素。我如何访问some_function
上新加载的ajax项目?我以前从未处理过这个问题,显然因为项目没有"渲染",但他们不能访问功能?
没有看到你的代码,我猜你已经绑定了一个事件处理程序直接到复选框
$('input[type="checkbox"]').click(function(event) {
// Your code
});
要在处理程序创建后添加内容时实现此功能,您需要使用委托处理程序,该处理程序绑定到较低级别的未更改元素,并将事件弹出到复选框中。我已经使用了document
,但最好将其绑定到更上面的dom节点,最有可能的是添加复选框的ul
。
$(document).on('click', 'input[type="checkbox"]', function(event) {
// Your code
});
这是一个可以使用jQuery on()
函数的好地方
你可以在这里阅读更多信息
使用事件委派-
$(document).on('change',".YourInputClass", some_function);
http://api.jquery.com/on/您应该在这种情况下使用事件委托。基本上,你将处理程序绑定到父元素,并通过选择器过滤掉以触发处理程序。
下面是伪代码,$('ul').on('click', '.checkbox', function () {
some_function.call(this); //maintain the context if it is an external function.
});
您需要delegate the events.
如果<div id="div1"></div>
是一个动态注入的元素,并且你想要附加click事件
$('staticContainer').on('click', '#div1', some_function);
相关文章:
- 如何使用JavaScript在没有html dom的情况下隐藏html元素
- 将GET请求(HTML字符串)转换为完整的DOM对象
- 注入的HTML仅在Dom中解释为字符串
- HTML选择,在DOM中选择了正确的选项,但在firefox中显示了错误的项目
- DOM更改后的L20N翻译html
- 如何序列化包括影子 DOM 在内的 HTML DOM
- 创建一个HTML文件,该文件使用DOM在用户每次单击按钮时交换两段内容
- 使用 jQuery 调用 DOM HTML
- 当我认为它不应该重新渲染视图时,如何防止 Meteor 在 html 选择 dom 单击事件上重新渲染视图
- 使用 ajax 更改光滑轮播的 html 后,DOM 不会更新
- 如何选择由 DevExpress constrols 使用 Javascript DOM 技术自动生成的 html “i
- 根据DOM,HTML元素的开始和结束标记之间的内容被称为属性.这个房产的名字是什么
- 为什么这里没有应用来自模板dom的html
- 通过Java加载XML并制作HTML DOM的一部分
- 在DOM(html)上下文中使用角度作用域函数时出现的问题
- Pupulate Dom HTML fom JSON and coffeescript
- 编辑 DOM/HTML 元素
- JavaScript DOM:html 表操作问题
- 如何识别由于Chrome扩展程序而导致的DOM html代码更改
- 在iPad上捕捉点击DOM/HTML/BODY事件