2011-03-25 5 views
1

.ajax() 함수를 사용하여 div를 동적으로 만들 때. 새로 생성 된 .tabs() 위젯을 첨부 할 수 없습니다.동적 요소에 ui-widget 첨부

이 링크는 새로운 사업부를 만들고 "somefile.php"

여기
<a href="newdiv">Creates New Div</a> 

가 동적으로 생성 사업부 인에서 #tabs의 DIV를 가져옵니다 : 여기

<div id="newdiv"> 
     <div id="tabs"> 
      <ul> 
       <li>Example One</li> 
       <li>Example Two</li> 
      </ul> 
     </div> 
</div> 

난 스크립트입니다 사용. 출력 - 오류 : (D || "") 함수 복사 코드 나 이벤트 매개 변수를 추가 할 때 탭을 보여줄 수있어

$("#tabs").live(function(){ 
    $(this).tabs() 
}); 

하지 .split는, 그러나 나는 탭이없이 표시 할 행사. 복사 코드

$("#tabs").live("click", function(){ 
    $(this).tabs() 
}); 

누군가가 나에게 내가 부족 이해하는 데 도움 주시기 바랍니다. 나는 3 일 동안이 일에 매달 렸습니다.

크리스

답변

0

당신이 AJAX 콜백이 완료되기 전에 라이브 핸들러를 할당하려고합니까?
내 생각에 코드를 AJAX 개체의 성공 처리기로 옮기고 live을 사용하지 말아야한다. 왜냐하면 나는 생각하기에 그렇게 생각하지 않기 때문이다.
더 많은 코드를 게시하면 더 많은 것을 도와 드릴 수 있습니다. 당신이하려는 것과 같은

내 생각 엔 :

$.ajax({ 
    type: "GET", 
    url: "/tabs/", 
    async: true, 
    success: function() { 
    $('#tabs').tabs() 
    } 
}); 
0

RSG는 잘못 live 기능을 사용하고 있다는 점에서 올바른 것입니다. live 함수는 특히 이벤트 처리기를 요소 및 호출 함수에 연결하는 데 사용됩니다. RSG가 지적한 것처럼, 최선의 방법은 ajax 요청의 성공 함수에서 tabs 위젯을 호출하는 것입니다.

관련 문제