我在尝试修复两个库之间的冲突时遇到了问题,并且在某些部分使用了noConflict
但是我一直得到 $ active is null 错误
我专注于服务器端脚本而不是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虽然我怀疑这是相关的我知道他们有冲突所以可能是这个错误的来源。
答案 0 :(得分:3)
要通过jQuery中的类选择元素,您需要在jQuery对象中使用CSS样式表示法,在您的示例中为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.
答案 1 :(得分:1)
<强> [编辑] 强>
如果这在某种程度上听起来很苛刻,那就是我在这个问题上以理解方式制定自己的问题,因为我只是想要教育,而不是暗示这是你应该知道的事情。这是很多人在javascript中做的错误(至少有几个我知道)。
答案 2 :(得分:0)
只需将$
替换为jQuery
,只要您通常使用$
,就可以。{/ p>
所以,而不是典型的:
$('.active').attr('rel')
使用:
jQuery('.active').attr('rel')
答案 3 :(得分:0)
$active
是一个javascript变量(他们选择将$
放在它前面以帮助他们记住它存储jQuery对象,但行为是相同的。)
因此,$active
替换active
的每个实例仍应有效。我不知道ifit会解决你的问题。
您应该尝试的另一件事是将代码置于闭包中:
(function($){
// your code
})(jQuery);
这样,在闭包内部,$
将仅引用jQuery