jQuery中的bind方法是用于綁定事件的。它有一個很重要的特性——冒泡。
$('p').bind('click', function(){
alert('你點擊了這個p標簽!');
});
上面的代碼表示當你點擊一個p標簽時,會彈出一個提示框。但是如果你的HTML頁面中多個父子級關系的元素都有綁定同一個事件,那么就會觸發多次事件。這種現象就是冒泡。
如下面的例子:
<div class="wrapper">
<ul class="list">
<li class="item">1</li>
<li class="item">2</li>
<li class="item">3</li>
</ul>
</div>
<script>
$('.wrapper').bind('click', function(){
alert('你點擊了wrapper這個div!');
});
$('.list').bind('click', function(){
alert('你點擊了list這個ul!');
});
$('.item').bind('click', function(){
alert('你點擊了item這個li!');
});
</script>
當你點擊li元素時,會按照從下到上的順序觸發事件:先觸發item的事件,再觸發list的事件,最后觸發wrapper的事件。
如果我們不想讓事件冒泡,可以使用event對象的stopPropagation()方法:
<script>
$('.item').bind('click', function(event){
event.stopPropagation();
alert('你點擊了item這個li!');
});
</script>
上面的代碼表示當你點擊li元素時,只會觸發item的事件,而不會觸發list和wrapper的事件。