2011-12-01 46 views
2

我有一個問題,試圖解決這兩個庫之間的衝突,並使用在一些路段的noConflict,但我不斷收到$積極爲空錯誤

我專注於服務器端腳本,而不是JavaScript(也沒有時間閱讀一些文檔),所以,將不勝感激任何幫助。

這裏是我的代碼:

首先(我只是猜測這裏)jQuery的增加,這將在以後使用

jQuery(".paging a:first").addClass("active"); 

現在的一類,它的時間來使用該類

var triggerID = $active.attr("rel") - 1; //Get number of times to slide 

由於代碼是一個滑塊的錯誤會在每次到達此行,我的問題是時間...有沒有什麼辦法可以去除$,仍然使用jQuery在該行?

P.S:我使用jQuery 1.6.1分鐘和MooTools的1.2雖然我懷疑這是有關我知道他們有衝突,所以可能這個錯誤的根源。

回答

3

選擇由它的類中的jQuery,你需要使用CSS樣式符號在jQuery對象,這在你的例子是jQuery(".active")的元素。試試這個:

var triggerID = jQuery(".active").attr("rel") - 1; //Get number of times to slide 

要使用你原來的代碼,你需要的$active變量分配是包含該元素的jQuery對象,像這樣:

var $active = jQuery(".paging a:first").addClass("active"); 
var triggerID = $active.attr("rel") - 1; // This will now work, assuming it's in the same scope as the above. 
+0

它的工作。感謝您的快速回復。 – jfevia

+0

@ jfevia沒問題,很樂意幫忙 –

1

$主動無關在這種情況下與jQuery(儘管它可能是一個jQuery變量)。在javascript中您可以命名變量「$的東西」沒有問題,而且它不會簡單地命名爲「$」,這是另一個變量名共東西碰撞。這就像說你已經刪除了所有對變量「car」的引用,但不明白爲什麼你會抱怨缺少「地毯」的錯誤。他們完全獨立,因此您發佈的代碼不足以查看錯誤。

[編輯]
如果這聽起來它只是我不得不制定自己在這件事情的理解方式有問題某種程度上苛刻,因爲我只是想教育,不意味着這是一件你應該知道。這是很多人在javascript中做的錯誤(至少我知道的幾個)。

0

它應該只是將$替換爲jQuery,無論您通常使用$

所以,而不是典型的:

$('.active').attr('rel')

使用:

jQuery('.active').attr('rel')

0

$active是一個JavaScript變量(他們選擇把$在它的前面,幫助他們記住它存儲了一個jQuery對象,但行爲是一樣的)。

因此,將$active的每個實例替換爲active仍然應該可以工作。我不知道是否會解決你的問題。你應該嘗試是把你的代碼在一個封閉

的另一件事:

(function($){ 
    // your code 
})(jQuery); 

這樣,封閉的內部,$只會引用的jQuery

+0

我已經試過了,但是我需要修復2行包含'$ active'。還用'active'替換並不能解決問題。謝謝 – jfevia