Ral*_*k28 75 javascript jquery onclick
这是index.html
:
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('.btn_test').click(function() { alert('test'); });
});
function add(){
$('body').append('<a href=\'javascript:;\' class=\'btn_test\'>test</a>');
}
</script>
</head>
<body>
<a href="javascript:;" class="btn_test">test1</a>
<a href="javascript:;" onclick="add()">add</a>
</body>
Run Code Online (Sandbox Code Playgroud)
如果我点击test1
链接,它会显示alert('test')
,但是如果我点击add
链接然后点击test
,它就不会显示任何内容.
你能解释一下吗?
Mos*_*atz 211
对于2011年之后遇到此问题的用户,有一种新的正确方法:
$(document).on('click', '.btn_test', function() { alert('test'); });
Run Code Online (Sandbox Code Playgroud)
这是jQuery 1.7的一部分.
有关更多信息,请参阅直接和委派事件
Dou*_*eux 34
您需要使用"实时"单击侦听器,因为最初只存在单个元素.
$('.btn_test').live("click", function() {
alert('test');
});
Run Code Online (Sandbox Code Playgroud)
更新:由于不推荐使用live,您应该使用"on()":
$(".btn_test").on("click", function(){
alert("test");
});
Run Code Online (Sandbox Code Playgroud)
小智 15
我有同样的问题,如问题,我刚刚拉我的头发,然后我得到了解决方案.我使用不同的语法
$(".innerImage").on("click", function(){
alert("test");
});
Run Code Online (Sandbox Code Playgroud)
它不适合我(innerImage动态创建dom)现在我正在使用
$(document).on('click', '.innerImage', function() { alert('test'); });
Run Code Online (Sandbox Code Playgroud)
谢谢@Moshe Katz
.click绑定到jQuery目前可见的内容.你需要使用.live:
$('.btn_test').live('click', function() { alert('test'); });
Run Code Online (Sandbox Code Playgroud)
而是使用Jquery live.这是http://api.jquery.com/live/的帮助页面
$('.btn_test').live(function() { alert('test'); });
Run Code Online (Sandbox Code Playgroud)
编辑:live()
已弃用,您应该使用on()
.
$(".btn_test").on("click", function(){
alert("test");
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
67319 次 |
最近记录: |