0

在我的本地主机网络服务器上,这些脚本可以正常加载并完美运行,但在我的 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
4

1 回答 1

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');

    });
});
于 2013-05-20T06:14:42.087 回答