IE7+;中部分重新加载后未附加Javascript事件;
我有一个js文件,为所有页面加载,其中包含一个弹出对话框功能:IE7+;中部分重新加载后未附加Javascript事件;,javascript,jquery,internet-explorer,onclick,Javascript,Jquery,Internet Explorer,Onclick,我有一个js文件,为所有页面加载,其中包含一个弹出对话框功能: $(document).ready(function() { $('a.popup').on('click', function(e) { alert('Show Dialog'); }); }); 这在首次加载页面时起作用。但是,当使用以下方法计算对象元素时: $(this).html(data); 似乎a.popup事件不再附加。此问题仅在IE7+中出现。它适用于chrome、firefox
$(document).ready(function() {
$('a.popup').on('click', function(e) {
alert('Show Dialog');
});
});
这在首次加载页面时起作用。但是,当使用以下方法计算对象元素时:
$(this).html(data);
似乎a.popup事件不再附加。此问题仅在IE7+中出现。它适用于chrome、firefox和opera。有人知道问题的原因和解决方法吗?尝试使用
live
函数进行事件绑定
请参见,而不是:
$('a.popup').on('click', function(e) {
alert('Show Dialog');
});
使用:
另请参见:中的:
事件处理程序仅绑定到当前选定的元素;他们
在代码调用.on()时页上必须存在。
要确保元素存在并且可以选择,请执行事件
在文档就绪处理程序中为
页面上的HTML标记如果新的HTML被注入到
页面中,选择元素并在新HTML之后附加事件处理程序
被放置到页面中。或者,使用委派事件附加事件
处理器,如下所述。
委派事件的优点是,它们可以从中处理事件
以后添加到文档中的子元素。通过
选择一个元素,该元素保证在
已附加委派事件处理程序,您可以使用委派事件
避免频繁附加和删除事件处理程序。这
元素可以是视图中的容器元素
例如,模型视图控制器设计,或记录事件
处理程序希望监视文档中的所有冒泡事件。这个
文档元素在之前的文档头中可用
加载任何其他HTML,因此可以安全地在那里附加事件,而无需
正在等待文档准备就绪
除了处理后代元素上的事件的能力之外
尚未创建,委派事件的另一个优点是
当必须使用多个元素时,可能会产生更低的开销
监控。在tbody中包含1000行的数据表上,以下示例
将处理程序附加到1000个元素:
委派事件方法仅将事件处理程序附加到一个
元素、tbody和事件只需要向上冒泡一个级别
(从单击的tr到tbody):
您正在使用updatepanel吗?这是什么?不推荐使用
a.popup
?live,应改用.on()。
$('body').on('click', 'a.popup', function(e) {
alert('Show Dialog');
});
$("#dataTable tbody tr").on("click", function(event){
alert($(this).text());
});
$("#dataTable tbody").on("click", "tr", function(event){
alert($(this).text());
});