我需要在DevExpress gridview上添加一个JavaScript点击监听器来添加新的记录确认。 我不能使用常规的单击事件监听器,因为它是通过集成到控件中的AJAX加载的。我也无法访问按钮的代码,因此无法扩展它。我唯一拥有的是按钮名称。
理想情况下,我想听DOM上按钮的外观,然后附上听众,有没有办法做到这一点?
答案 0 :(得分:4)
您无需等待DOM中按钮的外观。
只需使用附加到动态元素的不变的祖先的委托事件处理程序。
e.g。
$(document).on('click', '.someclass', function(){
///
});
如果您只有按钮的元素名称,请使用属性选择器:
e.g。
$(document).on('click', '[name="somename"]', function(){
///
});
委托事件通过监听冒泡到不变的祖先的事件来工作(document
是默认值,如果没有更接近的可用的话)。它然后在事件时间(而不是在事件注册时)应用选择器。 然后为导致事件的任何匹配元素调用函数。
最终结果是,它将与事件发生后可能存在的元素一起使用。
注意:如果没有什么比动态内容更接近,请使用document
,但不要使用'body'
,因为样式可以使其高度为零,并且委派的鼠标事件将无效!