为什么取消注册jQuery会导致其他脚本无法加载?

时间:2015-03-19 作者:codecowboy

我继承了一个使用以下in函数的站点。php:

if ( ! function_exists( \'foundation_assets\' ) ) :

function foundation_assets() {

    if (!is_admin()) {   
        wp_deregister_script(\'jquery\');    
    }

    wp_enqueue_script( \'new-slider\', get_template_directory_uri() . \'/scripts/new.Slider.js\', array(), NULL, true );  
}

add_action( \'wp_enqueue_scripts\', \'foundation_assets\' );

endif;
如果我阻止此函数运行,其他插件会正确加载其他脚本。

原来的主题开发人员在这里做了什么坏事吗?如果以这种方式取消注册,其他依赖jQuery的插件是否可能会中断?

1 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

我想你错过了关于依赖性的要点。如果在注册样式或脚本或将其排入队列时设置了依赖项参数,则该样式或脚本将在队列中等待加载它所依赖的样式或脚本。在所依赖的脚本或样式完全加载之前,不会加载此特定脚本或样式。

现在,如果取消注册其他人所依赖的脚本或样式,很明显,该特定脚本或样式将永远不会加载,这反过来意味着任何依赖于该特定样式或脚本的脚本或样式将始终保持在队列中,并且永远不会加载。等公共汽车送你到目的地也是一样,但你永远无法乘坐那辆公共汽车到达目的地,因为那辆公共汽车已被无限期取消

我不知道原作者为什么这么做,但我真的认为取消注册jquery没有任何意义,因为这会破坏网站的许多视觉表现,在某些情况下还会破坏网站的功能。

结束

相关推荐

JQuery UI插件在IE7中不起作用?

我想从中使用对话框this plugin, 但它与IE7不兼容。当我在Internet Explorer的IE7模拟器中运行它时,对话框呈现出奇怪的效果。部分透明,可拖动/可调整大小不起作用,标题消失。据我所知,问题似乎与以下其中一个(或两者)有关:控制台显示IE7不支持“querySelectorAll”。是否有解决方法</如果我以怪癖文档模式呈现页面,一切正常。有没有办法强制IE7以怪癖模式呈现页面?我遇到过this, 这建议在doctype之前添加一条注释——但我不知道如何在WordPress