Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery对话框模式在单击时被调用两次_Javascript_Jquery_Jquery Ui_Jquery Ui Dialog - Fatal编程技术网

Javascript jQuery对话框模式在单击时被调用两次

Javascript jQuery对话框模式在单击时被调用两次,javascript,jquery,jquery-ui,jquery-ui-dialog,Javascript,Jquery,Jquery Ui,Jquery Ui Dialog,所以。。。我有一个网站 jQuery对话框正在向发送ajax请求 当您到达页面时,会自动弹出一个窗口。请把那个放在一边 单击此图像时… 与此函数调用关联的… $(function() { $("#compliance").dialog({ autoOpen: true, modal: true, width: 750, height: 'auto', show: 'fade', hide:

所以。。。我有一个网站

jQuery对话框正在向发送ajax请求

当您到达页面时,会自动弹出一个窗口。请把那个放在一边

单击此图像时…

与此函数调用关联的…

$(function() {
    $("#compliance").dialog({
        autoOpen: true,
        modal: true,
        width: 750,
        height: 'auto',
        show: 'fade',
        hide: 'fade',
        position: {my: "center top", at:"center top", of: window },
        buttons: {
            "Dismiss": function() {
                $(this).dialog("close");
            }
        }
    });
    $(".dialogify").on("click", function(e) {
        e.preventDefault();
        $("#compliance").html("");
        $("#compliance").dialog("option", "title", "Loading...").dialog("open");
        $("#compliance").load(this.href, function() {
            $(this).dialog("option", "title", $(this).find("h1").text());
            $(this).find("h1").remove();
    });
    });
});
还是这个…

与此功能关联的…

$(function() {
    $("#switch").dialog({
        autoOpen: false,
        modal: true,
        width: 750,
        height: 'auto',
        show: 'fade',
        hide: 'fade',
        position: {my: "center top", at:"center top", of: window },
        buttons: {
            "Dismiss": function() {
                $(this).dialog("close");
            }
        }
    });
    $(".dialogify").on("click", function(e) {
        e.preventDefault();
        $("#switch").html("");
        $("#switch").dialog("option", "title", "Loading...").dialog("open");
        $("#switch").load(this.href, function() {
            $(this).dialog("option", "title", $(this).find("h1").text());
            $(this).find("h1").remove();
    });
    });
});
…出现了一个模态。但似乎出现了两种情态动词。不透明的背景比它应该的颜色暗。当你忽略第一个,还有另一个,因为背景变淡了

这是为什么?我只为每个调用一个函数。

嗯,您有两个显示对话框的事件处理程序,它们都由相同的操作触发(单击任何
.dialogify
)。因此,这两个处理程序都试图处理对这两个
元素的单击;单击任何一个都会显示两个对话框(尽管它们加载相同的内容,因为
this.href
对于每个单击目标是唯一的)。您可以通过将
警报(“a”)
放在第一个处理程序中,将
警报(“b”)
放在第二个处理程序中来确认这一点

$(function() {
    $("#compliance").dialog({
        autoOpen: true,
        modal: true,
        width: 750,
        height: 'auto',
        show: 'fade',
        hide: 'fade',
        position: {my: "center top", at:"center top", of: window },
        buttons: {
            "Dismiss": function() {
                $(this).dialog("close");
            }
        }
    });
    $(".dialogify").on("click", function(e) {
        e.preventDefault();
        $("#compliance").html("");
        $("#compliance").dialog("option", "title", "Loading...").dialog("open");
        $("#compliance").load(this.href, function() {
            $(this).dialog("option", "title", $(this).find("h1").text());
            $(this).find("h1").remove();
    });
    });
});

与此相反,只需使用唯一标识每个事件的单击目标的选择器,问题就会得到解决。

您应该使用此选项发布问题示例,否则问题对除您之外的任何人都没有帮助。看这里,我一直在这里用小提琴。我只是不知道如何用ajax请求复制错误。否则我会的,这就是问题所在。忘了那些课。谢谢你,乔恩!