1

次のような 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 がないため)。

4

2 に答える 2

1

おそらく、スパンのクローンを作成する必要があります。

$(this).closest("label").siblings(".help").clone().dialog({ title: "Help" });
于 2010-10-14T15:51:00.680 に答える
1

以下では、ダイアログを複数回再利用できますが<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;
});​

ここでデモ。

于 2010-10-14T15:52:41.517 に答える