我正在使用OSClass。当转到http://localhost/osclass/index.php?page=item&id=2
页时,会出现以下错误。
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'));
和
<script type="text/javascript">
$(document).ready(function(){
$("a[rel=image_group]").fancybox({
openEffect : 'none',
closeEffect : 'none',
nextEffect : 'fade',
prevEffect : 'fade',
loop : false,
helpers : {
title : {
type : 'inside'
}
}
});
});
</script>
我的问题在哪里?
答案 0 :(得分:1)
当抛出错误的脚本试图使用它时,不会加载jQuery。第一个错误之后的错误都源于jQuery没有被定义。
jQuery需要在任何之前加载,否则可能依赖于它。
由于您正在使用这些函数来加载您需要放置的内容,所以在任何其他可能需要jQuery的javascript之前:
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>
答案 1 :(得分:1)
我今天早上修好了,这是提交:https://github.com/osclass/Osclass/commit/cd9f75080f42d681be2e6bce709269073c0bcec2
问题是fancybox的依赖关系没有设置