jquery中對動態產生的標籤不會響應click事件,jqueryclick
Jquery中對ajax動態產生的html標籤不會響應 $(selector).click(function.. 或者$(selector).bind('click',function.., 需要用.live。
我們這樣繫結元素的click事件,以後jquery動態產生的元素,click事件也有效。
$('.clickme').live('click', function() { alert("Live handler called."); });
JQuery裡的代碼不可以響應動態產生的html元素的click事件,怎解決?
你可以換個思路解決這種問題
不要監聽動態html元素,可以監聽這些元素的父節點,再使用jQuery的is方法判斷是不是想要的元素。
附上例子
<body>
<script type="text/javascript">
$(function(){
$("#aaa").click(function(e){
if($(e.target).is(".bbb")){
alert(1);
};
});
});
</script>
<table id="aaa" border="1">
<tr>
<td><input type="button" class="bbb" value="sadasd"> <a href="javascript:void(0)" class="bbb">asdasd</a></td>
</tr>
<tr>
<td><input type="button" class="bbb" value="sadasd"> <a href="javascript:void(0)" class="bbb">asdasd</a></td>
</tr>
</table>
</body>
jquery動態產生的元素自動執行一次click事件
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(".d").live("click",function(){
alert("自動點選連結被點擊!");
});
$("#x").append("<a class='d' href='#'>自動點擊!</a>");;
$(".d").click();
});
</script>
<div id="x">
</div>
注意使用live綁定,動態產生的對象產生之後再執行click