jquery-ui-dialog:为什么单击对话框中的元素会产生更多对话框?

时间:2010-09-23 23:20:23

标签: jquery

$(top.document).ready(function () {   

   $(document).click(processAction);



function processAction(e){
    var clicked = e.target;
newDialog("You've Clicked On A Link !")

function newDialog(mytitle){
   var $dialog = $('<div id="myunique"></div>')
        .html("<a href='http://sss.com'>click</a>")
        .dialog({
            autoOpen: false,
            modal: true,
            title: mytitle
        });
    $dialog.dialog('open');
    return false
}

});

我遇到的问题是,当我单击对话框中的任意位置时,会弹出一个新对话框,似乎连续生成了其中的几个。

我的目标是: 捕获页面上的所有点击除了对话框内的元素。

1 个答案:

答案 0 :(得分:1)

你的问题可能就在这里:

$(document).click(processAction);

这意味着只要您点击页面上的任何位置,就会运行processAction()方法!

更改此选项,使其仅在单击按钮或链接时运行,并且应解决您的问题。

编辑:根据您的编辑,您希望捕获对话框外的点击次数。查看this thread以获取有关如何执行此操作的说明。