2012-11-02 40 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