2011-10-04 100 views
0

我正在使用CakePHP,并使用2个JavaScript脚本,其中一个依赖于jQuery。脚本之间的jQuery冲突

在这些Javascript角被用于变量$这与jQuery冲突之一并且因此

我不得不包括的代码中的CakePHP以下位:

<?php 
    $this->Js->JqueryEngine->jQueryObject = '$j'; 
    print $this->Html->scriptBlock('var $j = jQuery.noConflict();', array('inline' => false)); 
?> 

这使的JavaScript + jQuery的夹杂物工作正常。然后我想补充需要的jQuery另一个JavaScript - 我有,但是我得到以下错误:

Uncaught TypeError: Object function $(element) { if (arguments.length > 1) { 
for (var i = 0, elements = [], length = arguments.length; i < length; i++) 
    elements.push($(arguments[i])); 
return elements; } if (Object.isString(element)) 
element = document.getElementById(element); return Element.extend(element);} has no method 'extend' 

我不是一个巨大的JavaScript的buff。但是,这让我感到困惑,显然存在冲突 - 请帮助我获得这个基于jQuery的脚本。

感谢,

+0

jQuery的'$'现在被称为'$ j'和/或'jQuery'。适当地编辑你的脚本。 – cHao

+0

这是正确的答案!如果你把它作为答案,我可以标记完成!谢谢! – RenegadeAndy

+1

我的评论是非常相似[Jlange的答案](http://stackoverflow.com/questions/7655223/jquery-conflict-between-scripts/7655246#7655246),并不是很详细的问题的原因。我会建议回答,而不是张贴我自己的。 – cHao

回答

2

您需要使用您在没有冲突部分中定义的任何冲突选择,即$ j的而不是简单地$。