2012-06-16 59 views
0

當包含在Wordpress主題的標題中時,我會在小的背景動畫腳本中看到下面顯示的錯誤(73TypeError),這會打破腳本。我沒有看到任何錯誤,當包括非WordPress的網頁上的腳本:Wordpress中斷jQuery背景動畫腳本

enter image description here

下面是腳本:

$(function() { 
    $(".bottom").hover(function() { 
     $(this).animate({ 
     backgroundPosition : '0px 35px'} 
     , 300); } 
    , function() { 
     $(this).animate({ 
     backgroundPosition : '0px 0px'} 
     , 600); } 
    ); 
    } 
); 

可能有人建議在是什麼原因造成這個錯誤?

感謝,

尼克

+3

這是因爲jQuery沒有加載。閱讀這個[wp_enqueue_script](http://codex.wordpress.org/Function_Reference/wp_enqueue_script) – undefined

+0

哦,jQuery顯示在頁面上的腳本列表中,所以我推測它已包含在內。我添加了<?php wp_enqueue_script(「jquery」); ''在wp_head();'上面''在我的子主題的header.php文件中,現在我得到錯誤'TypeError:'undefined'不是函數(評估'$')'在上述倒數第二行腳本 – Nick

+0

單擊列表中加載的jQuery文件並檢查是否正確加載。 – undefined

回答

1

拳關在WordPress,jQuery的裝入時應該沒有衝突。所以在這種情況下你的文件應該是;

var $j = jQuery.noConflict(); 

$j(function() { 
    $j(".bottom").hover(function() { 
     $j(this).animate({ 
     backgroundPosition : '0px 35px'} 
     , 300); } 
    , function() { 
     $j(this).animate({ 
     backgroundPosition : '0px 0px'} 
     , 600); } 
    ); 
    } 
); 

;其次,像提到的定義,你需要使用wp-enqueue-script();

要做到這一點加載您的jQuery,最佳實踐,把你的jQuery在一個單獨的文件。打電話給它例如bganimation.js

現在要在wordpress中加載該js文件,請使用wp-enqueue-script();喜歡這個。

function this_is_jquery_example(){ 
wp_enqueue_script('jquery');; 
wp_enqueue_script('myscript', plugin_dir_url(__FILE__) .' bganimation.js'); 

} 
add_action('wp_enqueue_scripts','this_is_jquery_example'); 

希望這有助於。

+0

謝謝,這非常有幫助。正如上面在我對未定義的評論中所提到的,我認爲jQuery已包含在內。我遵循了你的指示,並且我創建的bganimation.js的路徑沒有正確設置:'http://soteriabrighton.co.uk/wp-content/plugins/home/nickputm/public_html/soteriabrighton.co .uk/wp-content/themes/bp-soteria/bganimation.js?ver = 3.4' – Nick

+0

您是否試圖將此直接包含到主題中,或者您正在創建插件? –

+0

我創建了一個名爲bganimation.js的單獨文件,並將它放在wp-content/plugins文件夾中 – Nick