2012-07-24 3 views
1

바인드 함수를 대리자 으로 변환하려고하지만 초기 페이지로드 후에 페이지에 추가 된 새 요소에서 이벤트가 트리거되도록 변경하려고합니다. 어떻게 변경할 수 있습니까?jquery에서 대리자로 바인드 변환

나는()에이 코드를

$(".user").bind("mouseenter", fnShowUserHover); 
+0

을 위임합니다. 그러나 당신이 정말로 가지고 있다면'.on'을 사용해야합니다. –

+0

jquery 1.7을 사용하는 경우 [delegate()] (http://api.jquery.com/delegate/)가 [on()] (http://api.jquery.com)으로 대체되었습니다. /에/). –

+0

우선적 인 질문입니다. 이벤트를 위임하는 것이 더 명백한 것을 선호한다면'.delegate'를 사용하면됩니다. http://forum.jquery.com/topic/delegate-vs-on#14737000002878044를 참조하십시오. – Esailija

답변

3
$(document).delegate(".user", "mouseenter", fnShowUserHover); 
1

사용을 변경하려면 : delegate

(단지 .user 요소에 대한 공통의 부모를 선택하는 대신 body의)

$("body").on("mouseenter", ".user", fnShowUserHover); 

당신은 할 수 구체적으로 쓰기 :

+0

바인드가 아니라 대리인을 사용하고 싶습니다. 다시 내 질문을 읽어주세요. – 2619

+0

내 편집을 참조하십시오.하지만 doc 페이지에서 읽을 수있는 것처럼 최근 jquery 버전을 사용하는 경우에는 on()을 사용하는 것이 좋습니다. – fcalderan

1

(210)는 CSTE 연구진 사용하는 경우() JQuery와 문서를 읽어

$('parentelement').on('mouseenter','.user',fnShowUserHover); 

또는 .delegate()

$('parentelement').delegate('.user','mouseenter',fnShowUserHover); 
관련 문제