Почему мой промежуток исчезает? - PullRequest
1 голос
/ 14 октября 2010

У меня есть некоторые настройки HTML, такие как:

<div>
    <label for="amount"><a id="amount-help-icon" class="help icon-link" href="#"><span class="ui-icon ui-icon-help"></span></a> Amount:</label>
    <input id="amount" class="inputText" type="text" value="" maxlength="100" size="10" name="amount" />
    <span class="help">The amount for stuff</span>
</div>

Я пытаюсь, чтобы jquery отображал диалоговое окно при нажатии на значок справки, поэтому у меня есть это:

$("a.help").click(function () {
    $(this).closest("label").siblings(".help").dialog({ title: "Help" });
    return false;
});

Это нормально работает для отображения диалога в первый раз, но диапазон исчезает из DOM, когда я нажимаю на значок.Поэтому, если я снова нажму на значок, ничего не произойдет (потому что нет span.help, чтобы найти).

Ответы [ 2 ]

1 голос
/ 14 октября 2010

Следующее позволяет вам повторно использовать диалоговое окно несколько раз - но <span> исчезнет сразу, а не при первом щелчке.

$("a.help").each(function(i, link) {
    var $this = $(this), 
        d = $this.closest("label").siblings(".help").dialog({ title: "Help", autoOpen: false });
    $this.data('dialog', d);
});

$("a.help").click(function () {
    $(this).data('dialog').dialog('open');
    return false;
});​

Демо здесь .

1 голос
/ 14 октября 2010

Возможно, вы хотите клонировать диапазон.

$(this).closest("label").siblings(".help").clone().dialog({ title: "Help" });
...