2013-07-05 28 views
0

我工作的一個WordPress站點和啓動一些簡單的sqripts:

(function() { 
    // Flex 
    if ($(".flexslider").length) { 
     $('.flexslider').flexslider(); 
    } 
})(jQuery); 

我也試過

$(function() { 
    // Flex 
    if ($(".flexslider").length) { 
     $('.flexslider').flexslider(); 
    } 
}); 

jQuery的運行,那麼爲什麼不$認可?如果我用jQuery替換$,它工作正常。

這也是不工作:

jQuery(document).ready(function() { 

    $('.section_header').click(function(){ 
     alert('test'); 
    }); 
}); 
+0

你有一些源代碼可以看嗎? – putvande

+0

您是否正在使用其他庫,如prototype.js? –

+0

是的,這是上面的代碼....我只使用jQuery。 – Steven

回答

5
(function ($) { 
     // Flex 
     if ($(".flexslider").length) { 
      $('.flexslider').flexslider(); 
     } 
    })(jQuery); 

嘗試此

頂部參數是將被用作在底部一個

因此,例如參考所述一個你可以做到這一點

(function (somethingHereCool) { 
    // Flex 
    if (somethingHereCool(".flexslider").length) { 
     somethingHereCool('.flexslider').flexslider(); 
    } 
})(jQuery); 

發生這種情況(主要是在WordPress)的原因是因爲WordPress使用jQuery的$.noConflict() 通過Defualt

所以這基本上意味着,$不屬於jQuery的了,所以,你可以不喜歡它上面並重新定義了$您可以使用的範圍。你基本上覆制jQuery並給它$

+0

查看我更新的問題。傳統的jQuery功能也不起作用。 – Steven

+0

我使用'($)'進行了測試,但這不起作用。我沒有得到任何錯誤,但jQuery沒有被觸發。 – Steven

+0

重要的是要知道,WordPress自帶的jQuery版本會自動調用jQuery.noConflict();功能。就像我現在提到幾次..... – rlemon

0

$在jQuery中有不同的含義/功能。在我的.jsp文件中創建jQueries時,我注意到了這一點。我不確定$的設計是什麼,但我在美元的地方使用jQuery

+0

像許多庫一樣, $用作[非知名變量名稱](http://en.wikipedia.org/wiki/Self-documenting) – SpYk3HH

+0

'$'是'jQuery'的縮寫,但如果您使用的是不同的庫,這就是爲什麼使用'jQuery'更好,但使用'$'保存字符... – Steven

+0

是的,我瞭解到$是一個jstl變量定義者,因爲你可以在jsp文件中使用jQuery,所以必須聲明我相信如果你在一個使用html/jsp或類似的wordpress站點中使用它,美元有不同的含義 – ghoulfolk

0

在WordPress的

jQuery(function($) { 
//code in here 
}); 
0

我下面的作品要添加到什麼Connor said in his answer,這基本上是你需要的$作爲傳遞參數的功能,以使用$jQuery

它不是默認的原因,是因爲jQuery提供了一個選項disable$。當你使用一個不同的JS框架時,這個主要用於使用它自己的$變量的實現,所以不會產生衝突。

禁用使用$的jQuery。您需要編寫以下內容,最好在導入jQuery庫之後直接編寫。在導入任何其他框架之前還應該導入其中。

jQuery.noConflict(); 
+0

順便說一句 - 它的「Connor」:) – iConnor

+0

@Connor對不起,修正:) – Dan

+0

phew ...謝謝。 。 。 。 – iConnor

相關問題