2015-11-04 93 views
-1

新东西,请耐心等待。 我有一个外部js文件,在我的HTML声明等JS代码是罚款和小提琴作品 - https://jsfiddle.net/0hu4fs4y/在HTML中运行外部Javascript

<script src="js/noti.js"></script> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script> 
<script src="js/jquery.flexslider-min.js"></script> 
<script src="js/scripts.js"></script> 

但是,这是行不通的。我运行一个旧的JQuery库吗?

这是愚蠢的/明显的我失踪了吗?

+1

顶部jquery 放jQuery脚本我觉得你的文件,'noti.js'和'scripts.js'依赖于jQuery,所以包含'jquery.min.js'作为第一个文件,其余部分在后面。或者,也可以尝试使用'jQuery.noConflict()'。 https://api.jquery.com/jquery.noconflict/ –

+1

您可能想要检查控制台(现代浏览器上的F12)以检查是否有错误消息。 –

+0

你的小提琴只有一个js文件。这是什么?不要将代码隐藏在小提琴后面。 – Teepeemm

回答

2

两件事情:

  1. 我猜noti.js依赖于jQuery的。如果是这样,它应该是之后包含jQuery的脚本标记(可能与您的scripts.js一起)。

  2. 确保这些脚本标签是在HTML的,刚刚闭幕</body>元素之前,让他们上存在作用的元素脚本运行时。

你的代码的小提琴作品,因为你已经在代码中直接粘贴和使用的jsfiddle的(心态麻木令人惊讶的)默认的是等待,直到windowload事件运行运行你的代码,这是非常,非常在页面加载过程中晚了。如果你是初学者,你可能已经看到了将script标签放在head中的反模式,并在你的东西中完成了这一操作,这意味着当你的代码运行时你的元素不存在,因为解析器没有看到它们然而。

+0

感谢T.J的快速回答 - 像魔术一样,将脚本标记移动到底部工作。万分感谢。 –

0

在的jsfiddle控制台错误是:

ReferenceError: $ is not defined

这可能是你的becasue是noti.js上使用的所有其他script