2013-01-16 147 views

回答

1

你需要的是委派的事件技術..見下面使用.on

$(document).on('click', 'a.bar', function(){ 
    // do something 
}); 
+0

$(文檔)應該在「準備好」之外嗎? – JohnJohnGa

0

你可以做一個init()功能,您可以設置所有觸發器和DOM修改後調用它。例如: -

$(function() { 
    init(); 

    $('a.foo').click(function(){ 
    $('#toto').append('<a class="bar">bar</a>'); 
    init(); 
    }); 
}); 

function init() { 
    $('a.bar').click(function(){ 
    // do something 
    }); 
} 
+0

這就是我想要避免的 – JohnJohnGa

+0

第一次點擊會很好......但是下次點擊會綁定所有'.bar'的處理程序,它已經有一個處理程序 –

+0

Vega:True,但是您可以使用$( 'a.bar')。data('events')'或通過解除'click'事件之前。我的回答只是一個提示,而不是完整的代碼。 – Jules

0
$(document).ready(function(){ 
    $('.foo').click(function(){ 
    $('<a class="bar">bar</a>').appendTo('#toto'); 
    }); 

    $('#toto').delegate('.bar', 'click', function(a){ 
    $('.foo').toggle();  
    }); 
}); 

使用委託。