当我需要重复执行时,如何从click事件中绑定click事件?

时间:2011-01-25 10:37:49

标签: javascript jquery

我有代码,所以当你点击一个单词时,它会被另一个单词替换。

<script>
    $(document).ready(function() {  
        $('.note_text').click(function(){
            $(this).remove();
            $('#note_div').append('<span class="note_text">new</span>');
            // re-applying behaviour code here
        });
    });
</script>

<div id="note_div">
    <span class="note_text">preparing</span>
</div>

我需要附加的单词才能拥有相同的点击行为。这样做的最佳方式是什么?

3 个答案:

答案 0 :(得分:2)

变化

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

$('.note_text').live('click',function(){

这会导致页面上的任何内容让“note_text”类具有由.live设置的行为

答案 1 :(得分:2)

您应该使用.live() help .delegate() help 绑定。

$(function() {
   $('#note_div').delegate('.note_text', 'click', function(e) {
       $(e.target).parent().append("<span class='note_text'>new</span>").end().remove();
   });
});

演示http://www.jsfiddle.net/PkngP/2/

答案 2 :(得分:0)

您可以重新绑定处理程序:

function handler(){
   $(this).remove();
   $('#note_div').append("<span class="note_text">new</span>");
   $(".note_text").unbind("click");
   $('.note_text').click(handler);
}

$(document).ready(function() {  
    $('.note_text').click(handler);
});