1

我正在尝试使用开箱即用的基础框架从头开始创建一个主题,但是当我需要包含基础 JavaScript 脚本时,它显示好像它们已被加载,但没有任何效果,首先是顶部栏不起作用,我试图取消注册预装 WordPress 的 jquery 并使用来自 Google cdn 的 jquery,因为我已经读过这是让顶部栏和其他脚本正常工作的可靠方法,但到目前为止还没有作品

这是我在functions.php中的代码

 // Enqueue scripts essential for foundation framework to act responsive

function responsive_scripts_basic()  
{  
    //register scripts for our theme  
    wp_deregister_script('jquery');

    wp_register_script('foundation-mod',  get_template_directory_uri() . '/javascripts/vendor/custom.modernizer.js',    
true );  
     wp_register_script('foundation-topbar', get_template_directory_uri() . '/javascripts/foundation/foundation.topbar.js',
 true );  
    wp_register_script('foundation-main', get_template_directory_uri() . '/javascripts/foundation/foundation.js', 
true );  
    wp_register_script('zepto', get_template_directory_uri() . '/javascripts/vendor/zepto.js', 

true );
     wp_register_script('jquery','http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js', 
 true );


    //enqueue scripts for our theme
    wp_enqueue_script( 'foundation-mod' );  
    wp_enqueue_script( 'foundation-topbar' );  
    wp_enqueue_script( 'foundation-main' );  
    wp_enqueue_script( 'zepto');
    wp_enqueue_script( 'jquery');
}  
add_action( 'wp_enqueue_scripts', 'responsive_scripts_basic' );  

我对样式表使用了相同的方法,完全没有问题,有什么经验吗?我认为使用这个框架构建主题会很容易,但公平地说,它变得相当复杂。

4

1 回答 1

1

那么js文件“入队”的顺序非常重要。

首先你“排队”现代化器,然后是 jQuery/zepto,然后是 Foundation.min.js,然后是 topbar 扩展:

//enqueue scripts for our theme
wp_enqueue_script( 'foundation-mod' );  
wp_enqueue_script( 'jquery');
wp_enqueue_script( 'foundation-main' );  
wp_enqueue_script( 'foundation-topbar' );  

请参阅zurb Foundation 安装文档,记住脚本的顺序。

此外,为了开始基础工作,您最有可能在 PHP 生成的 HTML 的最后需要一个脚本元素:

<script type="text/javascript">
    $(document).foundation();
</script>

由于 wordpress(据我所知)将 jQuery 推入 noConflict 模式,您可能必须这样写

<script type="text/javascript">
    jQuery(document).foundation();
</script>

编辑:Zepto 没有 noConflict 功能,留下 $ 是 jQuery 或任何设置。为了简单起见,选择 jQuery 并使用完全限定的jQuery(document).foundation()语法!

于 2013-07-24T00:18:20.090 回答