从UpdatePanel内部打开时,为什么弹出窗口没有关闭 - javascript

jQuery(在我的Webform的head函数内部):

function DoThisEM() {
    centerPopupEM();
    loadPopupEM();
}

function DoThatEM() {
    disablePopupEM();
}
var popupStatusEM = 0;
//loading popup with jQuery magic!
function loadPopupEM() {
    //loads popup only if it is disabled
    if (popupStatusEM == 0) {
        $("#backgroundPopupEM").css({
            "opacity": "0.7"
        });
        $("#backgroundPopupEM").fadeIn("slow");
        $("#popupContactEM").fadeIn("slow");
        popupStatusEM = 1;
    }
}
//disabling popup with jQuery magic!
function disablePopupEM() {
    //disables popup only if it is enabled
    if (popupStatusEM == 1) {
        $("#backgroundPopupEM").fadeOut("slow");
        $("#popupContactEM").fadeOut("slow");
        popupStatusEM = 0;
    }
}
//centering popup
function centerPopupEM() {
    //request data for centering
    var windowWidth = document.documentElement.clientWidth;
    var windowHeight = document.documentElement.clientHeight;
    var popupHeight = $("#popupContactEM").height();
    var popupWidth = $("#popupContactEM").width();
    //centering
    $("#popupContactEM").css({
        "position": "absolute",
        "top": windowHeight / 2 - popupHeight / 2,
        "left": windowWidth / 2 - popupWidth / 2
    });
    //only need force for IE6

    $("#backgroundPopupEM").css({
        "height": windowHeight
    });
}

$("body").on('click', "#popupContactCloseEM", function (e) {
    //e.preventDefault();
    alert('popupContactCloseEM');
    disablePopupEM();
});
$("body").on('click', "#backgroundPopupEM", function (e) {
    //e.preventDefault();
    alert('backgroundPopupEM');
    disablePopupEM();
});

网格视图:

弹出窗口(单击任何edit图标时:

我不确定为什么,但是当我单击x或弹出窗口周围的背景时,没有调用disablePopupEM函数来关闭它。我什至添加了一个测试alert,但我也没有看到。

请帮助我解决问题。

参考方案

对我来说,这听起来很像:您将click handlers分配给elements,因为DOM尚未完成加载(例如JavaScriptHTML之前初始化),所以尚不存在。

我会尝试将click handlers附加到$(document).ready()函数中,一旦DOM完全加载,就会调用该elements-然后handler可用,它们将与您的ready附加在一起。

$(document).ready(function() {
    $("body").on('click', "#popupContactCloseEM", function (e) {
        //e.preventDefault();
        alert('popupContactCloseEM');
        disablePopupEM();
    });
    $("body").on('click', "#backgroundPopupEM", function (e) {
        //e.preventDefault();
        alert('backgroundPopupEM');
        disablePopupEM();
    });
});

如您所见,您只需要用函数将其包围。

jQuery AJAX成功数据仅解析最后一个JSON节点的奇怪问题 - javascript

所以我有以下jQuery代码:function updateOrderSummary(orderID) { var returnString = orderID; $.ajax({ url: "library/getOrderSummary.php", type: "POST", data: ({returnStrin…

jQuery ajax发布电子邮件字段 - javascript

我不确定为什么我无法发布电子邮件字段的内容,这是我的代码。<html> <head> <title></title> <script src="//code.jquery.com/jquery-1.11.2.min.js"></script> </head>…

javascript popupwindow之后的行如何工作? - javascript

好的,我有一个来自后面代码的方法,可以创建一个popupwindow。然后有一行代码要在那之后执行,我想知道那行代码何时执行,是在使用popupwindow之后执行还是在创建popupwindow之后执行?例如:void exPopupWindowMethod() { string scr = "window.open('exampleP…

Javascript-Urls的奇怪字符串比较行为 - javascript

最近,在编写我无法理解的javascript时遇到了字符串比较的问题。我从完全相同的网址创建了两个字符串,当我比较它们时返回false,但是在重新分配相同的字符串后,比较返回true。这是我的示例:var str1 = "http://google.com/"; var str2 = "http://google.com‏/&#…

jQuery .click不适用于php文件 - javascript

我有一个连接数据库并显示一些图片的网站。我要这样做,以便当您单击其中一张图片时,它会显示一个警报,但是在动态渲染图像时似乎不起作用。每当我在jsbin上尝试它时,它都可以工作,但是当我使用php文件尝试时,它却不能。我正在使用jquery和bootstrap。JSbin:http://jsbin.com/xamovudiroqe/2/PHP代码while($…