2011-02-15 13 views
1

나는 내 방법 plugin's function to dynamic created elements in JQuery을 첨부, them.So의 동적 생성 .And 물론, 내가 할 수없는 선택이었다 li item 나누었다 UL elementJQuery UI Selectable를 부착!?JQuery에서 동적으로 생성 된 요소에 플러그인 기능을 연결하는 방법은 무엇입니까?

예컨대 :

<ul id="selectable"> 
    <li class="dataItem">item dynamic created here but you can't select me</li> 

</ul> 

[업데이트]

jQuery 코드

:

$("#selectable").selectable(); 

와 어디 delegate 또는 live을 사용!?

delegatelive 사용이이 방법으로 이벤트를 결합하는 방법 :

Supply a callback function to handle the selected event as an init option. 

$(".selectable").selectable({ 
    selected: function(event, ui) { ... } 
}); 

과 새로 추가 된 항목이 selectable plugin's 상태를하지 않았다 :

$('#selectable').delegate('li','click',function(){ 
    // do something here 
}); 

하지만 selectable plugin's events은 like :

ui-selectee 

So,should I re-attach the plugin at every time when a new item added!? 

당신이 아주 많이!!

+0

업데이트 된 답변 ... – Reigel

+0

'새 항목이 추가 될 때마다 플러그인을 다시 연결해야합니까? '- 네가 그렇다고 생각됩니다. – Reigel

답변

0

사용 .live() 또는


.delegate() 아니라, 당신의 갱신를 들어, 바로 당신이 DOM에 #selectable 요소를 첨부이 시간 이후 $("#selectable").selectable();를 호출합니다. 예를 들어

,

$('#selectable').click(function(){ 
    alert('I will not fire'); 
}); 

$('body').append('<ul id="selectable"><li class="dataItem">item</li></ul>'); 

$('#selectable').click(function(){ 
    alert('I will fire'); 
}); 

alert('I will fire'); 유일한 경고가 트리거 될 것입니다.

1

jQuery는 사용자가 원하는대로 정확히 수행 할 .live을 제공합니다.

"현재 선택자와 현재 및 미래에 일치하는 모든 요소에 대해 이벤트에 처리기를 연결하십시오."

관련 문제