2013-03-01 33 views
2

我正在使用OSClass。当转到http://localhost/osclass/index.php?page=item&id=2页面时,会出现以下错误。没有定义jQuery,并且Object [object Object]在OSClass中没有方法'fancybox'

Uncaught ReferenceError: jQuery is not defined 
(anonymous function) 

Uncaught TypeError: Object [object Object] has no method 'fancybox' 
(anonymous function) 
o 
p.fireWith 
e.extend.ready 
c.addEventListener.B 

Uncaught TypeError: Cannot call method 'create' of undefined 
(anonymous function) 
在那个文件我的JS们

osc_register_script('fancybox', osc_current_web_theme_js_url('fancybox/jquery.fancybox.js')); 

osc_enqueue_script('fancybox'); 
osc_enqueue_script('jquery-validate'); 

osc_enqueue_style('fancybox', osc_current_web_theme_js_url('fancybox/jquery.fancybox.css')); 

哪里是我的问题吗?

+0

你能发布你在页面上使用的javascript吗? – benzonico 2013-03-01 12:23:25

回答

1

我今天早上修好了,这里是commit:https://github.com/osclass/Osclass/commit/cd9f75080f42d681be2e6bce709269073c0bcec2

问题是fancybox的依赖没有设置

+1

这是一个不太详细的答案,下面的答案是在你的4小时前给出的。不知道它如何被接受,没有进攻。 – AlienWebguy 2013-03-04 19:19:27

+0

由于JQuery已经被注册/入队(在oc-load.php文件中),问题在于fancybox没有设置依赖关系,并且它在jquery之前被加载。正确的解决方法是设置依赖关系(所以fancybox将在jQuery之后加载)。 – CONEJO 2013-03-05 10:51:36

1

当引发错误的脚本尝试使用它时,jQuery不会被加载。第一个出现的错误全部来自未定义的jQuery。

jQuery需要加载之前什么其他可能取决于它。

由于您使用的这些功能加载的东西,你需要的地方,之前的任何其他JavaScript可以想见需要jQuery的:寻找相关的一些其他代码

osc_register_script('jquery', osc_assets_url('path/to/jquery.js')); 
osc_enqueue_script('jquery'); 

从你正在使用你可能也可以使用下面的代码(这取决于你的代码的其余部分...我只是抛出这个,因为你并没有真正展示给我们很多......入队函数可能是更好的选择):

<script type="text/javascript" src="<?php echo osc_current_web_theme_js_url('jquery.js') ; ?>"></script> 
相关问题