не могу вызвать диалог jquery по результату поиска - PullRequest
0 голосов
/ 26 января 2012

Все,

Я пытаюсь заставить диалоговое окно JQuery появляться, когда пользователь щелкает изображение.

Вот урезанная версия моего HTML:

<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>

И мой JavaScript:

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

Как видите, функция диалога («открытия») работает только тогда, когда я использую селектор класса напрямую, а не когда я использую функцию find ().Но поскольку на странице будет потенциально загружено MyHelpButtons, я должен быть в состоянии найти этот конкретный MyHelpText (тот, который является дочерним по отношению к MyHelpButton, по которому щелкнули).).

Есть идеи, что я делаю не так?

Спасибо за помощь.

Ответы [ 2 ]

1 голос
/ 26 января 2012

Это работает:

$($(this).selector + " .MyHelpText").dialog("open"); 

Селектор с синтаксисом $ ("{someselector} {anotherselector}") приглашает jQuery выполнить поиск по потомкам, как описано здесь:

http://api.jquery.com/descendant-selector/

0 голосов
/ 26 января 2012

Попробуйте это http://jsfiddle.net/heera/cL7nX/3, надеюсь, это поможет вам.

...