<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>ENTRUST</title>
</head>
<body>
<div id="entrust">
<button class="btn_class"> 测试 </button>
<button class="b_class"> 测试_测试 </button>
<div>
<button id="btn_id"> 测试1 </button>
<button id="b_id"> 测试_测试1 </button>
</div>
</div>
<script type="text/javascript" src="jquery/jquery-min.js"></script>
<script>
$(document).on('click','.btn_class',function(){
console.log(this.class,"测试——class");
});
$('.b_class').click(function () {
console.log(this.class,"测试——测试-class")
});
$('#btn_id').click(function () {
$("<button class='btn_class'> 测试 </button>").insertAfter('.b_class');
});
$('#b_id').click(function () {
$("<button class='b_class'> 测试_测试 </button>").insertBefore('.btn_class');
});
</script>
</body>
</html>
单单从形式上来说,on绑定给document,document委托给所有的class=btn_class的按钮,这样即使动态添加的同类名btn,也都会执行on绑定的事件;click绑定的只是class=b_class的btn,在绑定的时候只绑定给已存在的b_class的btn,b_class的click事件不会被新创建的按钮执行。