2011-01-25 1 views
1

단어를 클릭하면 다른 단어로 바뀌도록 코드가 생겼습니다.반복적으로 수행해야 할 때 클릭 이벤트 내에서 클릭 이벤트에 바인딩하는 방법은 무엇입니까?

<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> 

동일한 클릭 동작을 사용하려면 첨부 된 단어가 필요합니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

+0

...이 왜 그 대신 변경? –

답변

2

변화

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

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

에이 이제까지 .live

0

당신은 바인딩 할 수가 설정 한 동작을하는 'NOTE_TEXT'클래스를 가져옵니다 페이지에 아무 것도 원인이됩니다 핸들러 :

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); 
}); 
2

그 목적으로 .live()help 또는 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/ 난 단지 텍스트의 변화를 볼 수 샘플에서

관련 문제