2016-12-05 70 views
0

我在我的WordPress本地主機站點使用貓頭鷹傳送帶和slicknav。我從我的主題文件夾調用jquery。我嘗試在我的functions.php中使用wp_enqueue_script('jquery');,但如果我這樣做,那麼貓頭鷹旋轉木馬和slicknav不起作用。並使用該功能,我可以看到我的源代碼中加載jquery。現在WordPress中的jQuery問題

,我已經安裝了一個插件'的fancybox的WordPress的和插件無法正常工作。如果我使用wp_enqueue_script('jquery');函數而不是我的主題文件夾的jquery,插件工作,但貓頭鷹傳送帶和slicknav不起作用。

我認爲這個問題是因爲我的jQuery調用的發生。我需要一個正確的方式來調用jQuery,我也想避免任何衝突。這意味着必須有一種方法可以使用owl carousel,slicknav和其他任何東西,也可以使用需要jQuery的插件。我怎麼做?

我已經使用在twentyfourteen主題插件,並在那裏工作的罰款。

回答

0

你確定你已經jQuery的代碼之前加載?如果在控制檯(F12)中出現「jQuery未定義」錯誤,則可能需要更改腳本加載順序。

將工作:

<script src="path-to-jquery/jquery.min.js"></script> 
<script> 
    $('.foo').bar(); 
</script> 

下面的代碼將無法正常工作:

<script> 
    $('.foo').bar(); 
</script> 
<script src="path-to-jquery/jquery.min.js"></script> 
+0

感謝您的回覆。是的,jQuery在代碼之前加載,我可以從我的源代碼中看到。但現在的問題是,Uncaught TypeError:$不是函數(...) 我認爲現在所有這些$符號都發生了問題。我聽說如果我使用'jQuery'而不是'$',那麼錯誤將會消失,但是我應該如何在貓頭鷹傳送帶和其他縮小文件中更改所有這些錯誤?有沒有什麼快捷的方法來解決? –

+0

你仍然有同樣的問題。可能jQuery是異步加載? – plvice

+0

很高興看到現場演示。 – plvice

0

如果你想在排隊functions.php文件,你不能直接使用wp_enqueue_script ( '的​​jquery')。

你需要用行動wp_enqueue_scripts然後在回調函數中使用wp_enqueue_script('jquery')

add_action('wp_enqueue_scripts', 'enqueue_my_js'); 

function enqueue_my_js(){ 
    wp_enqueue_script('jquery'); 
    wp_enqueue_script('owl_caroussel', get_template_directory_uri().'owl_caroussel.js', false); // adjust the file path & name 
} 

當你排隊腳本,它依賴於jQuery的,注意了jQuery在WordPress在noConflict模式,這意味着你不能使用普通的別名$運行。您必須改用完整的jQuery。或者,將您的代碼放在noConflict包裝中,使用$快捷方式。

jQuery(document).ready(function($) { 
// $() will work as an alias for jQuery() inside of this function 
[ your code goes here ] 
}); 

如果需要,不要忘記排隊樣式文件。

希望它有幫助。

+0

感謝您的回覆,是的,我做到了。但現在我有「Uncaught TypeError:$不是函數(...)」,我該如何擺脫該錯誤? –

+0

我添加了關於noConflict模式的細節 – Benoti