jQuery:我可以在$(document).ready(function(){}之外创建函数吗?

时间:2012-08-09 12:01:50

标签: jquery

我有以下代码:

     $(document).ready(function() {
       $("#popupClose").click(function(){  
            disablePopup();  
       });

       $(document).keypress(function(e){  
            if(e.keyCode==27) {  
                disablePopup();   
            }  
        });
}); 

现在(最后)它可以在文档完成之前加载弹出窗口(需要弹出窗口来控制文件中PHP的流程)。但是,由于这些函数仅在document.ready中创建,因此当我的脚本调用弹出窗口时,我的弹出窗口控件尚不可用。

帮助表示赞赏!

4 个答案:

答案 0 :(得分:2)

您可能想在函数http://api.jquery.com/on/

上尝试jQuery的文档
$(document).on('click', "#popupClose", function(e) {
  disablePopup();
});

 $(document).on('keypress', "#popupClose", function(e) {
     if(e.keyCode == 27) { disablePopup(); }
    });

答案 1 :(得分:0)

尝试在$(document).ready(function(){...})之外,在

内声明您的功能
<script> </script>

答案 2 :(得分:0)

尝试使用.apply.call javascript方法。 This should help your problem.

答案 3 :(得分:0)

使用“#popupClose”作为选择器,因为它总是假设您在谈论当前文档中的ID,而不是父级。 除此之外-    从哪个上下文加载jQuery?    IFrame还是父窗口?    这可以产生很大的不同。    检查在加载DOM后是否添加了#popupClose,您需要将元素重新绑定到jQuery正在使用的DOM。    这可能是你的问题。