我当时的处理方法是在添加的时候手工绑定事件处理函数。不过新版的jquery已经添加了这个功能。我们已经不需要为此烦恼了。
参考:http://api.jquery.com/live/
最普通的动态天剑事件用法是这样:
$('li').click(function(){
alert("点我干么")
})
那我们看一个简单实例,实例1:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>jQuery 动态绑定事件</title>
<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
<h1> jQuery 1.7版本以上 动态添加元素事件绑定 简单实例</h1>
<ul>
<li> 默认存在,点我试试</li>
</ul>
<button οnclick="appendTest();"> 追加列表项</button>
<script>
$('li').click(function(){
alert("点我干么")
})
function appendTest(){
$('li:last').clone().appendTo( $('ul:last'));
$('li:last ').text("动态增加,点我试试");
}
</script>
</body>
</html>
我们继续看 实例2:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>jQuery 动态绑定事件</title>
<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
<h1> jQuery 1.7版本以上 动态添加元素事件绑定 简单实例</h1>
<ul>
<li οnclick="clickTest();"> 默认存在,点我试试</li>
</ul>
<button οnclick="appendTest();"> 追加列表项</button>
<script>
function appendTest(){
$('li:last').clone().appendTo( $('ul:last'));
$('li:last ').text("动态增加,点我试试");
}
function clickTest(){
alert("点我干么")
}
</script>
</body>
</html>
用法如下:
$('.li').live('click', function(){
alert("点我干么")
});
但是在1.7版本以后,live 方法被废弃了,详情参照:
取而代之的是 on 方法,个人感觉用法变复杂了,但习惯了也还好:
我们将实例1稍加修改,用 on方法实现为动态添加元素绑定事件:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>jQuery 动态绑定事件</title>
<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
<h1> jQuery 1.7版本以上 动态添加元素事件绑定 简单实例</h1>
<ul>
<li> 默认存在,点我试试</li>
</ul>
<button οnclick="appendTest();"> 追加列表项</button>
<script>
$('ul').on('click','li',function(){
alert("点我干么")
})
function appendTest(){
$('li:last').clone().appendTo( $('ul:last'));
$('li:last ').text("动态增加,点我试试");
}
</script>
</body>
</html>
至于on 方法的详细用法可参照jQuery手册。