Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery脚本没有在Wordpress上运行-我使用了hook_Javascript_Jquery_Wordpress_Jquery Masonry_Infinite Scroll - Fatal编程技术网

Javascript jQuery脚本没有在Wordpress上运行-我使用了hook

Javascript jQuery脚本没有在Wordpress上运行-我使用了hook,javascript,jquery,wordpress,jquery-masonry,infinite-scroll,Javascript,Jquery,Wordpress,Jquery Masonry,Infinite Scroll,这件让我毛骨悚然 我搜索过;我试了所有能找到的 在functions.php中: function masonry_scripts() { wp_enqueue_script('jquery'); if(is_home()){ wp_enqueue_script('masonry', get_template_directory_uri() . '/js/masonry.pkgd.min.js'); wp_enqueue_script('infin

这件让我毛骨悚然

我搜索过;我试了所有能找到的

在functions.php中:

function masonry_scripts() {
    wp_enqueue_script('jquery');
    if(is_home()){
        wp_enqueue_script('masonry', get_template_directory_uri() . '/js/masonry.pkgd.min.js');
        wp_enqueue_script('infinite scroll', get_template_directory_uri() . '/js/infinite-scroll.js');
        wp_enqueue_script('inf-mas-load', get_template_directory_uri() . '/js/masonry-reloader.js', array('jquery', 'masonry', 'infinite scroll'));
    };
};
add_action( 'wp_enqueue_scripts', 'masonry_scripts' );
js和infinite-scroll.js是各自站点上可用脚本的本地副本

在砌体-reloader.js中:

jQuery(function($){
    var $container = $('#items');

    $container.imagesLoaded(function(){
        $container.masonry({
            itemSelector: '.item-wrap',
            columnWidth: 472,
            gutter: 12
        });
    });

    $container.infinitescroll({
        navSelector  : '#pag.item-wrap',    // selector for the paged navigation 
        nextSelector : '#pag.item-wrap .pagination ul.paglinks li#older',  // selector for the NEXT link (to page 2)
        itemSelector : '.item-wrap',     // selector for all items you'll retrieve
        loading: {
            finishedMsg: 'No more pages to load.',
            img: 'http://i.imgur.com/6RMhx.gif'
        }
        },
        // trigger Masonry as a callback
        function( newElements ) {
            // hide new items while they are loading
            var $newElems = $( newElements ).css({ opacity: 0 });
            // ensure that images load before adding to masonry layout
            $newElems.imagesLoaded(function(){
                // show elems now they're ready
                $newElems.animate({ opacity: 1 });
                $container.masonry( 'appended', $newElems, true ); 
            });
        }
        );
});
它只是没有任何影响-就像脚本没有运行一样

元素显示加载的所有脚本。js很好,因为如果我用HTML初始化,或者不使用jqueryjs,就可以了

不过,我需要使用jQuery,以便可以从无限滚动中添加新项

这并不是因为无限滚动不好——如果我将jQuery简化为初始化砌体(就像在HTML中可以很好地工作一样),它就不会初始化。好像它根本就不在那里


我已经做了一个多星期了,我真的希望有人能发现我(可能)犯的愚蠢的错误-我觉得我已经尝试了所有的方法。

你需要先注册你的脚本,然后将它排队:

function masonry_scripts() {
    wp_enqueue_script('jquery');
    if(is_home()){
        // Register Scripts
        wp_register_script('masonry', get_template_directory_uri() . '/js/masonry.pkgd.min.js');
        wp_register_script('infinite_scroll', get_template_directory_uri() . '/js/infinite-scroll.js');
        wp_register_script('inf_mas_load', get_template_directory_uri() . '/js/masonry-reloader.js');

        // Enqueue Scripts
        wp_enqueue_script('masonry');
        wp_enqueue_script('infinite_scroll');
        wp_enqueue_script('inf_mas_load');
    };
};
add_action( 'wp_enqueue_scripts', 'masonry_scripts' );
2.适度的建议:

1) 为砌体和无限滚动提供依赖项数组,以确保它们在jQuery之后加载。您排队的顺序不一定是服务器发送这些文件的顺序


2) 这可能看起来很小,但无限滚动手柄中的空间让我感到紧张。WP文档似乎并不禁止空格,但我见过的每一个文档都使用破折号或下划线分隔。尝试将其更改为
“无限滚动”

是否有一个网页,您可以向我们显示它的运行位置?嗯。好的,它现在在news.enigma-tech.co.uk上直播。所以你可以看到它没有加载砖石——但正如我所说,它与砖石的HTML init完美结合(使用
class=“js砖石”
)。无限滚动也不起作用。这两个页面都是从同一个jQuery脚本加载的。哦,这只是在登录页上,顺便说一句(你可能已经注意到了
if(is_home())
条件。其他页面目前看起来相当混乱,我只是禁用了旧的/当前的工作主题,以便让所有人都能看到正在进行的工作。行$container.imagesLoaded(函数()){正在抛出一个js错误。imagesLoaded是由Mashise定义的函数吗?Jquery是由WordPress注册的。如果我错了,请纠正我,但我相信通过传递额外的可选参数,它也被注册了?Jquery是的,注册了。您的其他脚本-直到您注册它们。-我的理解是,因为我在中传递了$src参数排队,他们不需要事先注册。不管怎样编辑,没有更改。谢谢,但没有影响。