我需要将 JavaScript 点击监听器附加到 DevExpress GridView 上的添加新记录确认。 我不能使用常规的点击事件监听器,因为它是通过集成到控件中的 AJAX 加载的。我也无权访问按钮的代码,因此无法扩展它。我唯一拥有的就是按钮名称。
理想情况下,我想监听 DOM 上按钮的外观,然后附加监听器,有什么办法可以做到这一点吗?
最佳答案
您无需等待按钮出现在 DOM 中。
只需使用附加到动态元素的不变祖先的委托(delegate)事件处理程序。
例如
$(document).on('click', '.someclass', function(){
///
});
如果您只有按钮的元素名称,请使用属性选择器:
例如
$(document).on('click', '[name="somename"]', function(){
///
});
委托(delegate)事件通过监听冒泡到一个不变的祖先的事件来工作(如果没有更接近的东西可用,document
是默认的)。它然后在事件时间(而不是事件注册时间)应用选择器。它然后为引起该事件的任何匹配元素调用函数。
最终结果是,当事件发生时,它将处理稍后可能存在的元素。
注意:如果没有什么更接近动态内容,请使用 document
,但不要使用 'body'
,因为样式可以使其高度为零并且委托(delegate)的鼠标事件将不起作用!
关于javascript - 如何将 JS 单击事件附加到 AJAX 加载按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26408961/