0

我正在开发一个打开模式对话框的应用程序。该对话框允许用户向正在显示的模态对话框 div 添加诸如条件之类的复选框。他们将复选框的文本输入页面上的文本框中,然后单击按钮以附加复选框。复选框显示得很好。在每个复选框旁边,我还添加了一个 jquery ui-icon icon-close 图像类,以便在单击新条目旁边的 X 时,从页面中删除该条目。

问题在于简单地在页面中指定脚本是行不通的。div 似乎不是页面的一部分,并且为所有图像定义 onclick 侦听器并没有达到预期的效果。所以我的问题是,如何在模态对话框中定义图像 onclick 侦听器。例如,在定义模式对话框时,我可以指定一个 on open 函数,该函数在对话框第一次打开时执行一些操作。我想以类似的方式定义一个在模式对话框中单击图像时主动监听的函数。

例子:

        $("<div class='rationale' style='position: relative;'><div class='rationaleContainer' style='display:block; height:155px; overflow-y: scroll;'></div><div class='rationaleText' style='position: absolute; bottom: 0; float: right;'><input type='text' placeholder='Add rationale' id='rationaleBox' style='width: 540px;' maxlength='180'></div></div>").dialog({
        height: 300,
        width: 600,
        modal: true,
        closeOnEscape: false,
        resizable: false,
        title: "Comments for " + item,
        open: function(event, ui){
            $(".ui-dialog-titlebar-close").hide();
            $(".ui-dialog-title").after("<i style='font-size: 12px; float: right;'>("+value+")</i>");
            $(".ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset").css("float", "none");
        },

与定义的 open 函数类似,我想为图像点击创建一个侦听器

4

1 回答 1

0

要定义一个在单击元素时侦听的全局处理程序,请使用onjQuery 1.7 或更高版本上的函数。例如:

$(document).ready(function() {
    $('.ui-dialog .icon-close').on('click', function() {
        // an element of *.icon-close* within *.ui-dialog*
        // had been clicked
        $('ui-dialog').hide();
    });
});

如果您使用的是 1.7 之前的 jQuery 版本,请使用以下delegate方式代替on

$(document).ready(function() {
    $('.ui-dialog .icon-close').delegate('', 'click', function() {
        // an element of *.icon-close* within *.ui-dialog*
        // had been clicked
        $('ui-dialog').hide();
    });
});
于 2012-06-15T18:15:47.067 回答