Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.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 onready中,否则未定义对象文字;需要调试的想法吗_Javascript_Jquery - Fatal编程技术网

Javascript 除非包装在jQuery onready中,否则未定义对象文字;需要调试的想法吗

Javascript 除非包装在jQuery onready中,否则未定义对象文字;需要调试的想法吗,javascript,jquery,Javascript,Jquery,采用了一些javascript代码,我正在将其重新排列成更小的文件,以使其更易于管理;我从来不是一名全职的javascript工程师,但已经使用它一段时间了,但对它感觉不太舒服 我有一个对象文字来处理我们站点的大多数控制器级活动。我们重新排列了代码,并将其放入不同的文件中,但有一个特定的对象,我得到了一个未定义的错误。查看文件的加载顺序,它位于jQuery片段之前。在另一个jQueryOnReady包装器中包装这个对象文字也可以解决这个问题。如果我通过这样的方式检查: if (typeof ar

采用了一些javascript代码,我正在将其重新排列成更小的文件,以使其更易于管理;我从来不是一名全职的javascript工程师,但已经使用它一段时间了,但对它感觉不太舒服

我有一个对象文字来处理我们站点的大多数控制器级活动。我们重新排列了代码,并将其放入不同的文件中,但有一个特定的对象,我得到了一个未定义的错误。查看文件的加载顺序,它位于jQuery片段之前。在另一个jQueryOnReady包装器中包装这个对象文字也可以解决这个问题。如果我通过这样的方式检查:

if (typeof arc.event_handler === "undefined"){
 alert("something is undefined");
}else{
 alert("something is defined");
}
然后使用jQuery onready包装,定义了它,但没有它就没有定义。比如(我知道这段代码可以使用jQuery onload,也可以不使用jQuery onload)

然后在不同的文件中

// later in load order z-file.js
$(document).ready(function(){
  if (typeof arc.event_handler === "undefined"){
    alert("something is undefined");  
  }else{
    alert("something is defined");
   }


  $('.some').on('click',function(){
     arc.event_handler.do_something();
  });
});
我有点不知道是什么导致了这种行为。我的理解是,即使是一个外部文件,jQuery onready中的部分本质上也应该使它等待,直到加载这些其他部分。我可能没有得到真正简单的东西,但我想看看是否有任何关于下一步要看什么的想法

提前thx

<script type="text/javascript" src="/first.js"></script>
<script type="text/javascript" src="/second.js"></script>
second.js:

$(document).ready(function(){
    $('.some').on('click', arc.event_handler.do_something);
});

不,jQuery.ready会等待DOM,而不是所有脚本。如何加载它们,以及以何种顺序加载?上面的代码是否分布在两个文件中(2个就绪部分)?如果否,它应该工作是的,分布在两个文件上。以上代码是工作版本。理想情况下,我希望删除arc.event_处理程序对象文字周围的jQuery包装,但无法定义。向我们展示包含语法!按照上面的要求,请说明您是如何加载自己的脚本和jQueryTX的,所以我同意这应该是可行的;我只是对它为什么不起作用感到困惑。老实说,我希望只是我不知道一些显而易见的事情。让我试着开始评论部分。可能只是留下准备就绪的电话,但太难看了。Thx求救
arc = {
    event_handler: {
        do_something: function(){
            alert('do something');
        }
    }
};
$(document).ready(function(){
    $('.some').on('click', arc.event_handler.do_something);
});