我有一些像这样的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)。
答案 0 :(得分:1)
您可能想克隆范围。
$(this).closest("label").siblings(".help").clone().dialog({ title: "Help" });
答案 1 :(得分: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;
});
演示here。