JQuery $未定義


---恢復內容開始---

JQuery $未定義

 

jquery是Yii集成的,利用jquery寫的代碼
$(document).ready(function(){
// 操作列表
$('.operate').mouseover(function() {
$('#operate-'+$(this).attr('key')).show();
}).mouseout(function() {
$('#operate-'+$(this).attr('key')).hide();
});

$('.toggle-btn a,.delete-a').live('click',function() {
var str = $(this).html();
var vid = $('.grid-view').attr('id');
if(!confirm('確定要'+str+'嗎?')) return false;
var th=this;
var afterDelete=function(){};
$.fn.yiiGridView.update(vid, {
type:'POST',
url:$(this).attr('href'),
success:function(data) {
$.fn.yiiGridView.update(vid);
afterDelete(th,true,data);
},
error:function(XHR) {
return afterDelete(th,false,XHR);
}
});
return false;
});
第九行說我“$”未定義。。不明白原因

 

滿意回答

(function($){ $(document).ready(function(){ ......... })(jQuery); 防止$在命名空間上有沖突,可以用這樣的方式書寫。

追問

能給出一個沖突的例子不!謝謝了。。
 

回答

<script src="jquery.js"></script> <script> var $ = function(id){return document.getElementByIdx_x(id)}; //or function $(id){return document.getElementByIdx_x(id)} //or <script src="else js Yii.js"></script> $(document).ready(function(){ ...... }); </script> 上面的就是有命名沖突了,下面的就沒有問題: (function($){ $.......//函數里面所有的$都是jQuery })(jQuery); //意思是有1個參數的函數並且執行這個參數為jQuery的函數 (function(){***})();一個函數,並且執行這個函數 function(){***}只是定義,沒有執行

 

剛學習JQuery,按照視頻所講的編寫Html文件,完成后用IE9調試顯示$符號找不到,$未定義,於是乎我就上網查詢出現這種問題的原因,網上無非是說,JS文件引用不對,或者是Html文件的設置編碼格式不正確,我仔細的檢查了一下Html文件,不沒有編碼格式設置為UTF-8應該沒有問題,因為在FF或IE上測試並沒有出現亂碼的問題,接下來測試文件引用是不是正確,我把自己編寫的JS代碼直接放在Html文件里,測試了一下也沒有問題啊。這就郁悶了,究竟是啥問題呢?網上說的問題我也沒有出現啊,調試了一段時間,看了一下時間不早了,還是睡覺吧,第二天還得上班呢?
第二天,做完手頭上的工作,想起昨天遇到的問題,於是我又上網查詢了一下,無意間看到一句話。自己編寫的JS文件如果想要調用JQuery文件里的函數,JQuery文件引用要放在自己編寫JS文件引用位置的前面。是不是自己編寫的JS文件引用位置放的不對,這個很有可能。晚上會到寢室看了一下確實是我把JQuery文化引用位置放到了自己編寫JS文件的后邊。換了一下它們的位置,果然測試正確。由此有以下幾點小感觸:
1、問題解決不了時不要糾結於一時,放下了有可能你所需要的答案很可能就來了。
2、遇到不懂的問題上網查詢是很好的一種學習方法,但沒有經過深思熟慮的思考遇到問題就上網去找答案卻不是一種好的學習方法。有一句話說的好,盡信書不如無書,網絡也如此,盡信網不如無網。沒有經過思考就上網查詢,很容易被網上的一些說法所誤導,讓你離自己問題的最佳解決方案漸行漸遠,況且網上的很多答案都差不多,那樣的話找到自己所需要的答案可就越來越遠了。
3、扎實的專業知識很重要。以前在工作中遇到一些不能解決的問題,總喜歡上網查詢,可是有時候上網查詢未必就能找到你想要的答案,畢竟具體問題具體分析嘛。這時候答案一般是自己想出來的而不是從網上找到的,可見這時候就體現出你所掌握專業知識的重要性了。由此可知,網上提供的答案只是給你提供了一種解決思路,具體怎么解決,還得靠自己的專業知識和深思熟慮才能真正找到。

---恢復內容結束---


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM