如何将 JS 单击事件附加到 AJAX 加载按钮?

Inv*_*ama 2 javascript asp.net ajax jquery devexpress

我需要将 JavaScript 单击侦听器附加到 DevExpress 网格视图上的添加新记录确认。我无法使用常规单击事件侦听器,因为它是通过集成到控件中的 AJAX 加载的。我也无法访问按钮的代码,因此无法扩展它。我唯一拥有的是按钮名称。

理想情况下,我想监听 DOM 上按钮的外观,然后附加监听器,有没有办法做到这一点?

Gon*_*ing 6

您不需要等待按钮在 DOM 中的出现。

只需使用附加到动态元素的不变祖先委托事件处理程序

例如

$(document).on('click', '.someclass', function(){
   ///
});
Run Code Online (Sandbox Code Playgroud)

如果您只有按钮的元素名称,请使用属性选择器:

例如

$(document).on('click', '[name="somename"]', function(){
   ///
});
Run Code Online (Sandbox Code Playgroud)

委托事件通过侦听冒泡到不变祖先的事件来工作(document如果没有更接近的可用,则为默认值)。然后它在事件时间(而不是在事件注册时间)应用选择器。然后为引起事件的任何匹配元素调用该函数。

最终结果是,当事件发生时,它将与稍后可能存在的元素一起使用。

注意:如果没有什么更接近动态内容,请使用document,但不要使用'body'作为样式可以使其具有零高度并且委托的鼠标事件将不起作用!