用于绑定到动态 HTML 的 .on() 方法不起作用
the .on() method for binding to dynamic html is not working
-下面的锚标记通过JS添加到页面中。
-绑定事件时,容器div #sC
就在那里。
- 使用 jQuery 1.7.2
- 没有语法错误,没有控制台错误。
-是的,JS包装在脚本标签中,内容在正文中,没有标记警告或错误。
-我唯一能想到的是:这些链接附加了另一个事件,即使在我的代码正常工作后,它仍然一直有效。但是,我找不到它来自哪里(devtools 和 firebug 真的没有指示它附加在哪里,它指向 jQuery 库的第 1 行......
$(document).ready(function() {
$('#sC').on('click','a', function(event) {
alert("POOP");
});
});
<div id="sC">
<a href="javascript:return false">A</a>
<a href="javascript:return false">B</a>
<a href="javascript:return false">C</a>
<a href="javascript:return false">D</a>
<a href="javascript:return false">E</a>
<a href="javascript:return false">F</a>
</div>
更新也尝试了这个:
<div id="sC">
<a href="javascript:return false">A</a>
<a href="javascript:return false">B</a>
<a href="javascript:return false">C</a>
<a href="javascript:return false">D</a>
<a href="javascript:return false">E</a>
<a href="javascript:return false">F</a>
</div>
这也不起作用(???):
$(document).ready(function() {
$('#sC').on('click','.scenarios', function(event) {
alert("POOP");
});
});
<div id="sC">
<span class="scenarios">A</span>
<span class="scenarios">B</span>
<span class="scenarios">C</span>
<span class="scenarios">D</span>
<span class="scenarios">E</span>
<span class="scenarios">F</span>
</div>
之后,我尝试在控制台中抛出我的 .on() 函数以查看它是否可以工作(它应该,对吧?不。F*** 你铬控制台)... 在控制台中尝试了这个并喘息它的工作原理:
$('#sC .scenarios').click(function(event) {
alert('f*** this s***');
});
问题是你从内联处理程序返回false
,防止它冒泡到#sC
处理程序。
请尝试改用javascript:void(0)
:
<div id="sC">
<a href="javascript:void(0)">A</a>
<a href="javascript:void(0)">B</a>
<a href="javascript:void(0)">C</a>
<a href="javascript:void(0)">D</a>
<a href="javascript:void(0)">E</a>
<a href="javascript:void(0)">F</a>
</div>
您是否尝试过在没有 on 的情况下使用 click
处理程序? 这行得通吗?(用于调试目的)。
此外,我倾向于始终将我的on
处理程序绑定到文档本身 - 因为这在页面加载时始终存在,但是如果页面加载时#sC
应该没有问题,因为您在ready
函数中绑定on
。
查看下面的代码是否适合您:
$(document).ready(function() {
$(document).on('click','#sC a', function(e) {
e.preventDefault();//this will stop the page navigating away
alert("POOP");
//if after you do something then want to continue navigating the page
//from the anchors `href`
window.location = $(this).attr('href');
return false;//I always tend to return false
});
});
相关文章:
- Meteor-添加用户自定义字段的方法不起作用
- 在 JQUERY 中创建 HTML 后,Jquery 方法不起作用
- 为什么这个扩展方法不起作用
- Splice()方法不起作用
- Angularjs-向工厂传递数据的方法不起作用
- Knockout和bread.js的take方法不起作用Paging
- javascript注入$http-post方法不起作用
- 为什么pulk()和where()方法不起作用
- Ajax get 方法不起作用
- 当我将javascript代码放在外部站点.js文件中时,Ajax页面方法不起作用
- getJSON 方法不起作用
- Jquery ajax get 方法不起作用
- jQuery AddClass 方法不起作用
- ScriptManager.RegisterStartupScript() 方法不起作用 - ASP.NET,C#
- 为什么JavaScript方法不起作用
- 为什么 findRandom() mongoose for node.js 方法不起作用
- BackboneJS的设置方法不起作用
- 从javascript调用 asp.net 页面方法不起作用
- 主干.js对以前的方法不起作用进行建模
- toExponential() 方法不起作用