在我的localhost网络服务器上,这些脚本正常加载并且运行正常,但在我的BlueHost帐户中,我的控制台正在向我提供有关Isotope没有对象的错误。
代码:
<script type="text/javascript" src="<?php echo get_template_directory_uri(); ?>/js/jquery.isotope.js"></script>
<script type="text/javascript" src="<?php echo get_template_directory_uri(); ?>/js/jquery.infinitescroll.js"></script>
<script type="text/javascript">
$(window).load(function(){
$.ajaxSetup({ cache: false });
var $container = $('#articlePost');
$container.isotope({
masonry: { columnWidth: $container.width() / 3}
});
$(window).smartresize(function(){
$container.isotope({
// update columnWidth to a percentage of container width
masonry: { columnWidth: $container.width() / 3}
});
$container.isotope('reLayout');
});
});
</script>
以下是Chrome控制台错误:
Uncaught TypeError: Object [object Object] has no method 'isotope' www.theciv.com:92
(anonymous function) www.theciv.com:92
jQuery.event.dispatch jquery-1.9.1.js:3074
elemData.handle
答案 0 :(得分:1)
页面1.9.1和1.8.3中加载了两个版本的jQuery。
一个加载在标题(1.9.1)
中<script type="application/javascript" src="http://www.theciv.com/wp-content/themes/toolbox/js/jquery-1.9.1.js" /></script>
另一个来自wordpress
<script type='text/javascript' src='http://www.theciv.com/wp-includes/js/jquery/jquery.js?ver=1.8.3'></script>
我认为这是原因,删除其中一个并且它应该可以正常工作
或使其与jQuery.noConflict()
兼容jQuery(function($){
$.ajaxSetup({ cache: false });
var $container = $('#articlePost');
$container.isotope({
masonry: { columnWidth: $container.width() / 3}
});
$(window).smartresize(function(){
$container.isotope({
// update columnWidth to a percentage of container width
masonry: { columnWidth: $container.width() / 3}
});
$container.isotope('reLayout');
});
});