2012-09-15 96 views
1

這是我的主要頁面的html:.load()時相同的頁面,單擊兩次扳機jQuery的

<script type="text/javascript" src="js/jquery.min.js"></script> 
<div><a href="#" class="MyClick">Parent Click</a></div> 
<div class="content"></div> 
<script> 
    $(document).ready(function(){ 
    $('.MyClick').click(function(){ 
     $('.content').load('page2.html'); 
    }); 
    }) 
</script> 

,這是page2.html

<a href="#" class="showoff">Child Click</a> 
<script type="text/javascript"> 
$(document).ready(function(){  
    $('.showoff').live('click',function(){ 
     console.log('I Clicked'); 
    });  
}); 
</script> 

當鏈接parent click點擊,負載page2.htmldiv.content和當child click在控制檯螢火蟲cliked打印一次..

但我的問題是當我再次點擊parent click並再次點擊child click, 在控制檯打印兩次,但是我點擊一次,就好像page2.html之前,尚未從DOM中刪除,並在child click一個新一起燒製前page2.html ..

我想我多少時間加載page2.html這是不打印多線的時候我只需點擊一次Child click

回答

1

每次加載page2.html您註冊一個委託點擊處理程序.showoff因爲你使用.live()(這是由方法已過時,使用.on().delegate()爲< 1.7版本),這是爲什麼你會多倍每次點擊打印。

您是否使用live來達到特定目的?因爲這對我來說似乎沒有必要,只是在元素本身上使用處理程序。

<a href="#" class="showoff">Child Click</a> 
<script type="text/javascript"> 
$(document).ready(function(){  
    $('.showoff').on('click',function(){ 
     console.log('I Clicked'); 
    });  
}); 
</script> 
+0

謝謝,這是工作時,我使用空白.live() – Hendry

相關問題