2012-01-26 3 views
0

모두찾기 결과에서 jquery 대화 상자를 호출 할 수 없습니다.

사용자가 이미지를 클릭 할 때 JQuery 대화 상자를 표시하려고합니다. 내 자바 스크립트

<div class="MyHelpButton" style="display: inline;"> 
    <img src="{{MEDIA_URL}}/img/MyHelpIcon.png"/> 
    <div class="MyHelpText" title="MyTitle"> 
     here <i>is</i> <u>some</u> <b>text</b> 
    </div> 
</div> 

: 그리고 당신이 볼 수 있듯이

$(function() { 
    $(".MyHelpText").dialog({autoOpen:false}); 
    $(".MyHelpButton").click(function() { 
     $(this).find(".MyHelpText").dialog("open"); // this doesn't work 
     //$(".MyHelpText").dialog("open"); // this works 
    }); 
}); 

, 대화 상자가 ("여") 내가 사용하는 경우 기능은 작동 여기

는 제거 다운 내 HTML 버전입니다 find() 함수를 사용할 때 클래스 선택기를 직접 사용하지 마십시오. 그러나 잠재적으로 로드 될 것입니다 MyHelpButtons 페이지에,이 특정 MyHelpText (클릭 한 MyHelpButton의 자식) 찾을 수 있어야합니다. - 따라서 내 find() 사용합니다.

내가 뭘 잘못하고 있는지에 대한 아이디어가 있습니까?

도움 주셔서 감사합니다.

+0

당신은 수도 당신의 대답 수락에 조금, 0 %에 너의 일하고 싶다. .find가 항목을 반환하지 않았기 때문에 열리지 않습니다. http://api.jquery.com/find/ 문서를 읽고 무엇이 잘못되었는지 확인하십시오. – asawyer

+1

이것은 작동합니다 :'$ ($) .selector + ".MyHelpText"). dialog ("open"); http://jsfiddle.net/QGgyq/ – asawyer

+0

그건 속임수입니다. 귀하의 도움에 많은 감사드립니다 – trubliphone

답변

0

시도해보십시오. http://jsfiddle.net/heera/cL7nX/3을 사용해보세요. 도움이되기를 바랍니다. 여기에 설명 된대로

+0

매번 클릭 핸들러에서 ui 대화 상자를 다시 작성하면 불쾌한 메모리 누수가 발생합니다. – asawyer

+0

대화 상자의 닫기 버튼을 클릭 할 때 $ (this) .remove()를 호출하면 어떻겠습니까? http://jsfiddle.net/heera/cL7nX/3 –

+0

최소한 IE에서 시브 (Sieve)로 두 번 확인해 보니, 그 솔루션은 클릭 할 때마다 대화 상자 HTML 객체 복사본을 누설합니다. – asawyer

관련 문제