<html>
<head>
</head>
<script type="text/javascript"
src="http://code.jquery.com/jquery-1.8.1.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#add").click(function(){
$.addApp();
});
});
$(function(){
$(".pp").click(function(){
alert(1);});
});
$.addApp=function(){
$("#cc").append("<p class='pp'>nihao</p>");
};
</script>
<body>
<input type="button" id="add" >
<div id="cc">
<p class="pp">nihao</p>
</div>
</body>
</html>
这里我是想让那个button每次点击之后, 都自动加入一个<p class="pp">nihao</p>
同时让$(".pp").click(function(){
alert(1);});
});能够执行
但是我点击button的时候添加进去的所有的p标签文件, 点击之后都没有反应。
我查看网页源代码的时候, 那些p都是在的, 而且class是pp没错,
只有第一个p标签, 也就是我已经放在body里面的那个点击之后会弹出1
<head>
</head>
<script type="text/javascript"
src="http://code.jquery.com/jquery-1.8.1.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#add").click(function(){
$.addApp();
});
});
$(function(){
$(".pp").click(function(){
alert(1);});
});
$.addApp=function(){
$("#cc").append("<p class='pp'>nihao</p>");
};
</script>
<body>
<input type="button" id="add" >
<div id="cc">
<p class="pp">nihao</p>
</div>
</body>
</html>
这里我是想让那个button每次点击之后, 都自动加入一个<p class="pp">nihao</p>
同时让$(".pp").click(function(){
alert(1);});
});能够执行
但是我点击button的时候添加进去的所有的p标签文件, 点击之后都没有反应。
我查看网页源代码的时候, 那些p都是在的, 而且class是pp没错,
只有第一个p标签, 也就是我已经放在body里面的那个点击之后会弹出1
alert(1);});
}).appendTo('#cc');
$(".pp").click(function(){
alert(1);});
});改成$(".pp").live('click',function(){
alert(1);});
});
jQuery 给所有匹配的元素附加一个事件处理函数,即使这个元素是以后再添加进来的也有效。
.live() 方法能对一个还没有添加进DOM的元素有效,是由于使用了事件委托:绑定在祖先元素上的事件处理函数可以对在后代上触发的事件作出回应。传递给 .live() 的事件处理函数不会绑定在元素上,而是把他作为一个特殊的事件处理函数,绑定在 DOM 树的根节点上。
alert(1);});
});
<head>
<script src="http://code.jquery.com/jquery-1.8.1.js"></script>
<script> /**初始化*/
$(function(){
$("#add").click(addApp);
addApp();
});
/**
* 为控件绑定点击事件。
*/
function bindClickEvent(){
$(".pp").unbind().click(function(){
alert(1);
});
};
function addApp(){
$("#cc").append("<p class='pp'>nihao</p>");
//重新绑定事件
bindClickEvent();
};
</script>
</head>
<body>
<input type="button" id="add" >
<div id="cc"></div>
</body>
</html>
alert(1);});
改成如下就OK了
$(".pp").live('click',function(){
alert(1);});
楼主要学会.live()的用法这个方法可以为追加到dom中的元素绑定事件。。