2010-04-06 2 views
4

그래서 'onclick'과 같이 어떤 미래형 요소 나 과거 요소를 선택할 수있는 'live()'함수가 생겼습니다.'.live()'와 동일한 Jquery persistent css selector

는 지금은 대신이 라인 I 추가 아약스를 사용할 때마다 호출하는, 그래서 내가 아약스를 통해 새로운 버튼을로드 할 때마다 다음 ...

$('a.btn.plus').button({icons:{primary:'ui-icon-plusthick'}}); 
$('a.btn.pencil').button({icons:{primary:'ui-icon ui-icon-pencil'}}); 
$('a.btn.bigx').button({icons:{primary:'ui-icon ui-icon-closethick'}}); 

처럼 버튼을 설정하는 데 새로운 버튼, JQuery에 내 버튼을 설정하는 것과 비슷한 방법이 있습니다. 언제든지 새 버튼을 추가 할 수 있습니까?

도움 주셔서 감사합니다.

답변

2

정말 아닙니다. 그러나 Ajax 호출이 성공할 때마다 트리거되는 함수 .ajaxSuccess()이 있습니다.

$('body').ajaxSuccess(function() { 
    $('a.btn.plus').button({icons:{primary:'ui-icon-plusthick'}}); 
    $('a.btn.pencil').button({icons:{primary:'ui-icon ui-icon-pencil'}}); 
    $('a.btn.bigx').button({icons:{primary:'ui-icon ui-icon-closethick'}}); 
}); 

을하지만이 새로운에서뿐만 아니라 클래스와 어떤 링크에서 실행됩니다 : 그래서 당신은 할 수 있습니다. 그러나 한 번에 여러 개를 추가하면 (a.btn.plus 번으로 한 번에) :last 선택 자 (a.btn.plus:last)를 사용할 수 있습니다.


또한 함수와 그냥 당신의 콜백 함수에서 만들 수 있습니다

function links() { 
    $('a.btn.plus').button({icons:{primary:'ui-icon-plusthick'}}); 
    $('a.btn.pencil').button({icons:{primary:'ui-icon ui-icon-pencil'}}); 
    $('a.btn.bigx').button({icons:{primary:'ui-icon ui-icon-closethick'}}); 
} 

및 Ajax 호출에 :

$.ajax({ 
    //... 
    success: function(msg){ 
     links(); 
    } 
}); 

이 방법은 당신이에 부모 요소를 전달할 수를 함수는이 요소 내부에서만 링크를 찾기 위해 (따라서 코드는 새 링크에서만 작동합니다).


마지막 옵션은 사용자 지정 이벤트를 생성하지만 결국에는 사용자가 원하는대로 함수 호출을 수행하는 것과 유사합니다.

+0

안녕 고양이, 조언 주셔서 감사합니다! 아약스 성공을 사용하여 버튼을 업데이트하는 것이 지금 최고의 옵션입니다. – uberdanzik

1

너무

$("body").delegate("a.btn", "hover", function(){ 
$(this).toggleClass("hover"); 
}); 
+0

어쨌든 OP 질문에 답을 연관시킬 수 없습니다. 버튼 생성과 관련이 있습니까? –

+0

"delegate"설명 : 특정 루트 요소 집합을 기준으로 현재 또는 미래의 선택 자와 일치하는 모든 요소에 대해 하나 이상의 이벤트에 처리기를 연결합니다. 아직 사용 방법을 모르겠지만 '미래'라는 말은 내가 경험한다고 생각하는 것을 실제로하기를 희망하는 일부 체험자를 시험해보고 싶습니다. – uberdanzik

+0

사실,이게 내가 찾고있는 것 같아. "델리게이트는 .live() 메서드를 사용하는 대신에 특정 DOM 요소에 대한 이벤트 위임을 바인딩 할 수 있습니다." – uberdanzik

0

가 JQuery와 플러그인 요구 사항을 포함하는 livequery라는이 당신의 성공 함수에서 대리자를 사용할 수 있습니다.

나는 JQuery와 .live (등이 플러그인의 생각처럼)하지만 등 이벤트에 대한 필요성 ('클릭')없이

당신은 //

Jquery - Live Query Plugin

여기에 더 많은 정보를 찾을 수 있습니다