2010-06-22 188 views
5

我有一個網頁,其中有一個按鈕放置在一個div內。 我想實現的是當用戶點擊div時,它會觸發點擊按鈕。代碼是這樣的:jquery - 無限循環

<div id='main'>  
<input id="button" type="button" onclick="javascript:dosomething();" value="submit" /> 
</div> 


<script type="text/javascript"> 
    $(function(){ 
    $('#main').bind('click', function(){ 
     $('#button').trigger('click'); 
    }) 
    }) 
</script> 

當執行(點擊div),它會拋出javascript錯誤「太多遞歸」。 它有點有道理爲什麼它的無限循環,但我不知道什麼是實現這一行動的正確方法? (PLZ不問我爲什麼要這樣,它不是我的代碼!)

感謝您的幫助!

回答

7

停止event bubbling裏面的按鈕點擊事件處理程序。

使用e.stopPropagation()

如果您正在使用jQuery然後讓jQuery的方式,所有的事件處理程序。所以,按一下按鈕將

$('#button').click(function(e){ 
    doSomething(); 
    e.stopPropagation(); 
}); 

所以整個事情將是

$(function(){ 
    $('#main').bind('click', function(){ 
     $('#button').trigger('click'); 
    }); 

    $('#button').click(function(e){ 
     doSomething(); 
     e.stopPropagation(); 
    }); 

}); 
+0

的工作,做的伎倆。謝謝! – BeCool 2010-06-22 05:13:27

0
$("#main").on('click', function (e) { 
    e.stopPropagation(); 
    $("#button")[0].click(); 
}); 

它爲我