0

我可以安全地将这段代码从document.ready()块内移出吗?

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

此代码放置在从 html 页面部分加载的外部 js 文件中,head并选择放置在 html 中的 html 元素body,以从那里提取数据。

4

4 回答 4

3

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

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

要么将代码放在之后div例如在关闭之前</body>

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

于 2013-04-23T16:24:13.410 回答
2
  • 出 document.ready() 块。
  • 从 head 部分加载的外部 js 文件
  • 选择放置在 html 正文中的 html 元素

=> 没有。你可以试试,会发现是$userInfoNode空的。

于 2013-04-23T16:27:21.950 回答
0

是的。

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

简而言之

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

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

于 2013-04-23T16:25:24.550 回答
0

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

于 2013-04-23T16:27:34.910 回答