2012-11-03 43 views
1

寫入無效jQuery代碼我只是從升級CakePHP的1.1一些代碼2.2.3和我卡上的AJAX位。形式是完全不同的,但他們已經把它們改寫得很好。

當我查看源代碼時,我從echo $ this-> Js-> writeBuffer();命令

//<![CDATA[ 
$j(document).ready(function() {$("#AdlistingRegion").bind("click", function (event)  {$.ajax({async:true, dataType:"html", success:function (data, textStatus) {$("#AdlistingDistrict").html(data);}, url:"\/adlistings\/getdistricts"}); 
return false;}); 
$("#AdlistingDistrict").bind("click", function (event) {$.ajax({async:true, dataType:"html", success:function (data, textStatus) {$("#AdlistingSuburb").html(data);}, url:"\/adlistings\/getsuburbs"}); 
return false;});}); 
//]]> 

然而螢火告訴我

Uncaught TypeError: Property '$' of object [object Window] is not a function 

這似乎是在庫中的一個缺陷,其似乎並不可行,但我已經得到了JS輔助控制器,不能看哪一步我錯過了。

有沒有人有任何想法?

+1

你肯定jQuery是包括*之前*這段代碼?另外,你似乎使用'$ j'(一個noConflict別名?),然後是'$'。這是爲什麼? - 嘗試在瀏覽器的JS控制檯中輸入以下各項,並在頁面完全加載後查看所得結果:'$','$ j'和'jQuery'。 – polarblau

+0

http://book.cakephp.org/2.0/en/core-libraries/helpers/js.html建議使用noconflict代碼。因爲它是cakephp我沒有寫我粘貼的源代碼。 –

+0

一般而言,無衝突代碼沒有問題,但第二行不使用可能導致問題的無衝突別名。但是我不熟悉cakephp,這就是爲什麼我無法進一步回答你的問題。 – polarblau

回答

0

這是小技巧,但它爲我的作品;)

<?php echo str_replace('$(document).ready(function()', 'jQuery(document).ready(function($)', $this->Js->writeBuffer()); ?> 

瞭解更多關於安全的jQuery:http://api.jquery.com/jQuery.noConflict/

相關問題