標籤:dynamic ann cannot ajax pat 字元 函數 app release
更新jQuery版本後報錯url.indexOf is not a function解決辦法http://www.findme.wang/Blog/detail/id/196.html
最近在使用之前下載的jquery.thinkbox.js,一直報錯url.indexOf is not a function,如下:
經分析,報錯主要是由調用load函數引起:
12 |
$( "" ).load( function (){ }) |
因為在jquery3.2.0中,load函數定義如下:
函數的第一個參數為url,即字串,indexOf屬於字串的方法,瞬間明白,傳入一個函數的時候報錯url.indexOf。
為什麼之前用的時候可以呢?
通過查閱jQuery Blog,發現
.load, .unload, and .error, deprecated since jQuery 1.8, are no more. Use .on() to register listeners.
原來在Jquery1.8之後的版本,load方法已經被遺棄。移除原因如下:
The .load() method is an ambiguous signature, it can either be an ajax load or attach/fire a "load" event. CCAO cannot tell them apart since it‘s a dynamic decision based on arguments.
If .load() is being deprecated, .unload() should be as well.
因為和ajax中load方法衝突,具體可以參考這裡
處理load問題的解決方案
jQuery Blog上說,通過使用on進行綁定,即如下:
12 |
$( "" ).on( ‘load‘ , function (){ }) |
因為on和bind都是處理事件綁定的,經測試bind也可以。
1234567 |
$( "" ).bind( ‘load‘ , function (){ //處理相應的事務 }).attr({ "href" : ‘index.css‘ , "type" : "text/css" , "rel" : "stylesheet" }).appendTo( ‘head‘ );
|
jQ load方法在jquery1.8版本中被廢棄,用on進行綁定