javascript - 通过 innerhtml 分配 ID 时,jquery ui 对话框不会打开

标签 javascript html jquery-ui-dialog innerhtml

我遇到了一个小问题。这是我正在做的示例。

 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/

相关文章:

javascript - 使用CSS显示和隐藏DIV

javascript - 参数 'myCtrl' 不是函数,未定义

php - DataTables 插件不起作用

javascript - 如何用另一个函数javascript停止计时器

javascript - 单击事件在 jQuery 对话框中不起作用

jquery iframeFix 实现

javascript - D3 : When I add a transition, 我的鼠标悬停停止工作...为什么?

html - 在不同系统中查看时用户界面外观会发生变化

Javascript 和 CSS 弹出窗口

javascript - 当屏幕达到一定尺寸时使用 jQuery 或 javascript 删除 Div 标签?