2012-09-05 27 views
5

我在我的WordPress下面的代碼:JavaScript的美元符號變量不工作

(function ($) { 
    var $header = $("div.header"); 

    $(window).bind("scroll resize", function() { 
    if ($(window).scrollTop() > 30) { 
     $("div.header").stop().animate({ 
     'opacity': 0.24 
     }, { 
     duration: 1000 
     }); 
    } else { 
     $header.stop().animate({ 
     'opacity': 1 
     }, { 
     duration: 1000 
     }); 
    } 
    }); 
})(jQuery); 

如果語句應該踢當別人卻從未...

如果我用括起來:

jQuery(document).ready(function($) {   
    // code here 
}); 

這一切都很好。爲什麼?

謝謝

+0

什麼是JavaScript錯誤發生或提供你的WordPress的網址包含錯誤,所以我們可以正確回答。 –

+1

「爲什麼它不起作用?」不是我熟悉的錯誤消息。 –

+2

@ExplosionPills:就像「天空是藍色的」,「水是溼的」,「重力是下降的」,「摩擦是一種阻力」。真的,但沒用。 –

回答

9

可能是你正在嘗試使用jQuery的時候沒有建立dom。嘗試使用$(document).ready功能:

(function ($) { 
    $(document).ready(function() { 
    $header = $("div.header"); 
    $header.remove(); 
    }); 
})(jQuery); 

關於你的問題已經mantioned:

jQuery(document).ready(function ($) { 
    // code 
}); 

它的作品,因爲它做同樣的事情:它結合上ready事件的事件處理程序,並通過jQuery對象該函數的參數爲​​$

你做現在什麼之前:

(function ($) { 
    $header = $("div.header"); 
    $header.remove(); 
})(jQuery); 

在這裏,你只需要聲明匿名函數與命名$參數:

function ($) { 
} 

而且隨着jQuery對象作爲參數,這將是可用叫它作爲$的功能:

(function ($) { 
})(jQuery); 
+0

非常感謝的人。我有一些新的東西要消化。 –