2011-10-04 102 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的而不是簡單地$。