我可以在“document.ready()”块之外安全执行吗?

时间:2013-04-23 16:21:17

标签: javascript html dom

我是否可以安全地从document.ready()块内移出这段代码。

var $userInfoNode = $('#userOptions');
CURR_USER_ID = $userInfoNode.attr('data-userId');
CURR_USER_NAME = $userInfoNode.text();

此代码放在外部js文件中,该文件是从html page&的head部分加载的。选择放置在html body中的html元素,从中提取数据。

4 个答案:

答案 0 :(得分:3)

简答:不,因为JavaScript文件放在标题中。

执行代码时,DOM(文档对象模型)需要包含<div id="userOptions">

您可以将代码放在 div之后,例如在结束</body>之前。

或者您将代码放在$(document).ready()函数中,该函数在DOM完全加载后立即触发。

答案 1 :(得分:2)

  
      
  • out of document.ready()block。
  •   
  • 从头部加载的外部js文件
  •   
  • 选择放置在html正文
  • 中的html元素   

=&GT;不。你可以尝试一下,发现$userInfoNode为空。

答案 2 :(得分:0)

是。

您还需要确保您要引用的html元素出现在您的javascript之前。

总之把这个

var $userInfoNode = $('#userOptions');
CURR_USER_ID = $userInfoNode.attr('data-userId');
CURR_USER_NAME = $userInfoNode.text();

在html页面的末尾......

答案 3 :(得分:0)

如果您必须/想要将其保存在外部文件中,您可以在关闭正文标记之前放置引用它的脚本元素。起初看起来有点奇怪,但它是有效的。