2012-11-02 43 views
1

我試圖做一個按鈕,當我點擊它時,它會創建一個新的按鈕,然後當我點擊下一個/新建按鈕時,它會創建一個按鈕後,但點擊事件只適用於第一個按鈕,你能幫忙嗎?動態地添加新的div,但點擊事件不工作在新的div

這裏是我的小提琴= http://jsfiddle.net/hyeFB/

// $(document).ready(function() { 


    var myDiv = '<div class="myButton">myButton</div>'; 


    $('#c').append(myDiv); 


    $('.myButton').click(function() { 

     $(this).after(myDiv); 

    }); 


//});​ 

回答

5

嘗試使用on

var myDiv = '<div class="myButton">myButton</div>'; 

$('#c').append(myDiv); 

$('body').on('click', '.myButton',function() { 
    $(this).after(myDiv); 
}); 
3
// $(document).ready(function() { 


    var myDiv = '<div class="myButton">myButton</div>'; 


    $('#c').append(myDiv); 


    $('.myButton').live(function() { 

     $(this).after(myDiv); 

    }); 

    // Or Use delegation 
    $('body').delegate('.myButton','click',function() { 

     $(this).after(myDiv); 

    }); 


//}); 

會做的伎倆。 http://api.jquery.com/live/欲瞭解更多信息。

注意live已過時開始使用jQuery 1.7,所以上面的答案是更正確的一個1.7+

+1

'live'折舊使用'delegate'或'on' – coolguy

+0

我知道。由於沒有給出jQuery版本,我覺得有必要展示另一種選擇。 – ZenMaster

+1

+1,因爲您提到了折舊 – coolguy