jquery - 如何将自定义 html 关闭按钮添加到 jQuery 对话框主体?

标签 jquery html jquery-ui onclick jquery-ui-dialog

类似问题:How to add my custom buttons with ids to a dialog-modal jquery object

我很好奇是否有人知道如何使用我添加到 .html 正文中的自定义按钮来关闭 jQuery 对话框。我应该更改 onClick 值吗?到什么?也许虚拟退出键是一个选择。我不想使用标题栏关闭或按钮 Pane 关闭,以便保留正在进行的主题。谢谢!

这是我所拥有的:

<script>
$(function () {
    var $dialog = $('<div></div>')
    .html('')
    .dialog({
        autoOpen: false,
        modal: true,
        position: 'center',
        draggable: false,
                width:'40%';
    $(".ui-dialog-titlebar").hide()
    $("body").on('click', '#opener', function(e) {
        var param = $(this).attr('data-AttrRatingID');
    $dialog.html(param + "<br /><div id='modalClose' onclick='' class='formbtnshell' title='Close'><div class='formbtnwhtl'></div><div class='formbtnwhtr'></div><div class='formbtninside formbtninsidedelete'><div class='formbtntext'>Close</div></div></div>");
        $dialog.dialog('open');
        // prevent the default action, e.g., following a link
        return false;
    });
});

最佳答案

只需分配一个单击事件并在事件内关闭对话框。避免使用内联事件处理程序。

$(document).on('click', '#modalClose', function() {
   $(dialogSelector).dialog('close');
});

更新

您创建 fiddle 的方式存在一些问题。切勿嵌套事件。它会多次绑定(bind)事件,这不会给你带来想要的效果。

您正在将事件附加到 id=opener $("body").on('click', '#opener',

但是当您追加元素时,该元素的 id 是不同的

// Declare the initial dialog outside the Click event
var $dialog = $('#dialogg');

$dialog.dialog({
    autoOpen: false,
    modal: true,
    position: 'center',
    draggable: false,
    width: '40%',
    buttons: {
        "Close": function () {
            $(this).dialog("close")
        }
    }
});

// Append the HTML and open the dialog
$('input').click(function () {
    $dialog.html("<br /><a id='modalClose'>CloseMe</a>");
    $dialog.dialog('open');
});

// Bind the click event that closes the modal
$("body").on('click', '#modalClose', function (e) {
     // prevent the default action, e.g., following a link
     e.preventDefault();

     // Need to close the Modal
     $dialog.dialog('close');
});

Check Fiddle $dialog.html("
CloseMe");

关于jquery - 如何将自定义 html 关闭按钮添加到 jQuery 对话框主体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17956419/

相关文章:

jquery - 如何使用不同的数组遍历不同的div?

html - 将 html 保存到数据库的安全方法

html - 如何在网站中使用自定义字体

javascript - 在模态弹出窗口内交换时无法定位元素

javascript - 验证时在 span 元素中显示错误消息的问题

javascript - 在下拉菜单中选择选项后 append 新的输入字段

javascript - 如何从 html 更改 angularjs 变量

jquery - 将 jQueryUI 可调整大小小部件应用于动态创建的元素

javascript - 为什么关闭javascript时浏览器显示空白页面

javascript - 在 IE7 中禁用页面缩放 (jQuery/JS)