我遇到了一个小问题。这是我正在做的示例。
htmlValue += '<a href="#" id="shareOpen" style="margin: 0 2px 0 2px; float: left;"
title="Share File" class="version ui-icon ui-icon-heart"></a>';
$(modalDivObj).html(htmlValue);
我正在一个页面上循环编写此代码,其中包含许多其他功能。一切都写得很好并且出现了。但是,当我单击 #shareOpen
时,对话框不会打开。我尝试对相同的 html 进行硬编码,但效果很好。问题是当我通过 .html()
完成它时它不会写 ID?我不知道。
这里是一些页面上的 html 和 jquery。
$("#shareFile").dialog({
autoOpen: false,
modal: "true",
show: "blind",
hide: "explode",
buttons: {
"Done": function () {
$(this).dialog("close");
}
}
});
$("#shareOpen").click(function () {
$("#shareFile").dialog("open");
return false;
});
<div id="shareFile" runat ="server">
</div>
最佳答案
根据您所说的,我认为最有可能的问题是点击事件未正确绑定(bind)。
尝试使用以下方法代替您当前的点击调用:
$("#files-icons").on("click", "#shareOpen", function () {
$("#shareFile").dialog("open");
return false;
});
这会将事件处理程序绑定(bind)到 ID 为“shareOpen”且属于#files-icons 的任何子元素,无论它们何时添加到页面。
我认为问题在于您在页面中尚不存在的元素上绑定(bind)了点击处理程序。
关于javascript - 通过 innerhtml 分配 ID 时,jquery ui 对话框不会打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13628407/