除非在页脚中执行,否则脚本不起作用
Script doesn't work unless executed in footer
这是一个
奇怪的情况。尽管确保它的所有依赖项都在它之前加载(在我的例子中它只是 jQuery 库),但我的脚本在 head 部分加载时不起作用(即 <head>
),但在加载到页脚(标签上方的某个地方)时会完成其工作</body>
)。
由于这还不够清楚,让我举一个活生生的例子。这是网页。现在,查看页面的源代码,在那里,这就是我正在谈论的代码。
<script type='text/javascript'>
/* <![CDATA[ */
var yjlSettings = {"gifUrl":"http:'/'/whatthenerd.com'/wp-content'/themes'/reddlec'/images'/ajax-loader.gif","autoGrow":"enable"};
/* ]]> */
</script>
<script type='text/javascript' src='http://whatthenerd.com/wp-content/themes/reddlec/js/no-reload-comments.js?ver=3.3.2'></script>
它应该做的是允许用户在不重新加载页面的情况下发表评论。(请随时在页面上测试评论 :)
) - 但事实并非如此。为什么?
PS:就像我之前说的,当上述脚本在</body>
标签之前加载时,一切正常。我真的看不出是什么导致了冲突。
您的脚本会立即在 DOM 中查找元素:
var $commentlist = jQuery('.commentlist');
var $respond = jQuery('#respond');
在脚本中找到的两个示例。这些项目在加载标头时不存在,但在到达身体末端时它们确实存在。如果你想从你的标题加载它,你需要把它包装在一个文档就绪块中:
jQuery(document).ready(function($) {
// Code using $ as usual goes here.
});
这样就可以安全地在页面顶部加载,方法是延迟代码的执行,直到文档完全加载并构造 DOM。
有关在线ready
的更多信息: http://api.jquery.com/ready/
相关文章:
- 当有许多形式时,Fancybox脚本不起作用
- Aureliaview中的脚本不起作用
- 淡入淡出脚本不起作用
- 从jquery对话框恢复原始数据,脚本不起作用
- 我的脚本不起作用
- 用于wooccommerce的简单JQuery脚本不起作用
- 简单的拖放JS脚本不起作用
- jquery和JavaScript脚本不起作用
- jquery脚本不起作用
- 为什么这个jquery脚本不起作用
- 带有ajax xml请求的Node js脚本不起作用
- 示例Casper JS脚本不起作用
- 多个脚本不起作用
- JavaScript/jQuery-脚本不起作用-添加&删除类,合并数组-测试用例
- 在php中验证字段时,java脚本不起作用
- 只有在条件满足时才加载javascript脚本-不起作用
- 使用另一个 ajax 脚本更改页面内容后,AJAX 脚本不起作用
- 网络视图的电子预加载脚本不起作用
- 用于显示服务器上的 javascript 时间的脚本不起作用
- “BBCODE”脚本不起作用