2

类似问题:如何将带有 id 的自定义按钮添加到对话框模式 jquery 对象

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

这是我所拥有的:

<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;
    });
});

4

1 回答 1

3

只需分配一个点击事件和事件close内的对话框。避免使用内联事件处理程序。

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

更新

创建小提琴的方式存在一些问题。永远不要嵌套事件。它会多次绑定事件,这不会给你带来想要的效果。

您将事件附加到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');
});

检查小提琴 $dialog.html("
CloseMe");

于 2013-07-30T20:11:04.293 回答