2011-12-01 80 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