【问题标题】:Global function unable to call全局函数无法调用
【发布时间】:2014-03-22 05:47:51
【问题描述】:

谁能告诉我我做错了什么,我无法让它工作,我已经阅读了大约 10 多个堆栈溢出范围问题,我非常困惑。

我的 popup.js 文件:

function popupClickGlobal()
{
window.popupClick = function(){ 
    window.alert("insidePopupClick!!!!");
    loading(); // loading
    setTimeout(function(){ // then show popup, deley in .5 second
    loadPopup(); // function show popup 
    }, 500); // .5 second
}
}

$("a.topopup").click(function() {
        loading(); // loading
        setTimeout(function(){ // then show popup, deley in .5 second
            loadPopup(); // function show popup 
        }, 500); // .5 second
return false;
});

/* event for close the popup */
$("div.close").hover(
                function() {
                    $('span.ecs_tooltip').show();
                },
                function () {
                    $('span.ecs_tooltip').hide();
                }
            );

$("div.close").click(function() {
    disablePopup();  // function close pop up
});

$(this).keyup(function(event) {
    if (event.which == 27) { // 27 is 'Ecs' in the keyboard
        disablePopup();  // function close pop up
    }   
});

$("div#backgroundPopup").click(function() {
    disablePopup();  // function close pop up
});

 /************** start: functions. **************/
function loading() {
    $("div.loader").show();  
}
function closeloading() {
    $("div.loader").fadeOut('normal');  
}

var popupStatus = 0; // set value

function loadPopup() { 
    if(popupStatus == 0) { // if value is 0, show popup
        closeloading(); // fadeout loading
        $("#toPopup").fadeIn(0500); // fadein popup div
        $("#backgroundPopup").css("opacity", "0.7"); // css opacity, supports IE7, IE8
        $("#backgroundPopup").fadeIn(0001); 
        popupStatus = 1; // and set value to 1
    }   
}

function disablePopup() {
    if(popupStatus == 1) { // if value is 1, close popup
        $("#toPopup").fadeOut("normal");  
        $("#backgroundPopup").fadeOut("normal");  
        popupStatus = 0;  // and set value to 0
    }
}
/************** end: functions. **************/

我的 index.php sn-ps:

<script type="text/javascript" src="_script/popup.js"></script>
    <script>
        if(formPosted) {
            window.alert("popupclick!");
            $(document).ready(popupClickGlobal);
            popupClickGlobal();
        }
    </script>

窗口显示 pupupclick!警报,我很困惑如何调用全局变量(似乎没有什么地方很清楚。我也尝试过 $.popupClickGlobal(); 来调用它。我期待在第二个警报的警报之后说 insidePopuoClick! !!!

请帮忙,谢谢。 克里斯

【问题讨论】:

  • popupClickGlobal 不是全局的(它是 domready-handler 的本地),并且永远不会被调用。 popupClick 将是全球性的。

标签: javascript jquery html call global


【解决方案1】:

popupClickGlobal 不是全局变量。它是声明它的 dom 就绪处理程序的本地变量。

由于 popupClickGlobal 函数要在全局范围内使用,只需删除它周围的 jQuery(function(){...}) 包装器

function popupClickGlobal() {
    window.popupClick = function () {
        window.alert("insidePopupClick!!!!");
        loading(); // loading
        setTimeout(function () { // then show popup, deley in .5 second
            loadPopup(); // function show popup 
        }, 500); // .5 second
    }
}

【讨论】:

  • 我附上了修改后的js文件,没有jquery,但它似乎仍然不起作用。
【解决方案2】:

尝试只在 popup.js 中放入以下代码

function popupClickGlobal()
{
    window.popupClick = function(){ 
        window.alert("insidePopupClick!!!!");
        loading(); // loading
        setTimeout(function(){ // then show popup, deley in .5 second
        loadPopup(); // function show popup 
        }, 500); // .5 second
    }
}

【讨论】:

  • 我已附上完整的 js 文件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-06
  • 2019-03-22
  • 2021-06-17
  • 2020-01-16
  • 2017-03-06
相关资源
最近更新 更多