2013-07-23 49 views
1

我想創建一個主題從頭開始使用基礎框架,它的工作很好的開箱即用,但是當我需要包括基礎JavaScript腳本,它顯示,如果他們已經加載,但沒有任何工作,首先頂部酒吧不工作,我試圖註銷jQuery的預先加載WordPress和使用谷歌CDN的,因爲我已經閱讀這是一個肯定的方式頂部酒吧和其他腳本的工作,但沒有到目前爲止作品基礎JavaScript的WordPress主題

這裏是我的代碼中的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'); 

我用同樣的方法F或樣式表,並沒有任何問題,在這方面的任何經驗?我認爲用這個框架構建主題很容易,但公平起來卻相當複雜。

+0

什麼說你的客戶端調試控制檯?很可能[你必須首先包含jQuery或zepto](http://foundation.zurb.com/docs/javascript.html),然後是基礎的js文件。這說,你應該[在他們之間選擇](http://stackoverflow.com/questions/14830334/what-is-the-difference-between-zepto-and-jquery-2),他們正在做相同/相似的事情。如果您不確定,使用jQuery – metadings

+0

[01:10:42.619]的ReferenceError:未定義基金會@ HTTP://本地主機:8888/WordPress的/可溼性粉劑內容/主題/測試/ Java腳本/基礎/ foundation.topbar.js ?版本3.5.2 =:297 – Alex

回答

1

那麼js文件「入隊」的順序是非常重要的。

首先,你做的「排隊」的近代化,然後jQuery的/仄,然後Foundation.min.js然後頂欄擴展:

//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 Installation docs,在考慮到腳本的命令。

也得到基礎的事情開始,你需要一個腳本元素最有可能在你的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()語法!

+0

這裏是我修改後的代碼: – Alex

+0

我改變如你所說,也包括在body標籤的$(document).foundation結束()調用的順序;這就是基礎文檔中說的,現在它起作用了,是在wordpress中添加代碼的最佳方式?硬編碼在index.php ...感謝百萬 – Alex

+0

「是最好的方式」 - 是的,我相信是這樣。 PS。歡迎來到stackoverflow!請通過接受答案讓我有你的觀點;) – metadings