2014-03-12 35 views
-1

我使用設計的jQuery 1.9.1的腳本,有這樣一行:使用jQuery 1.6與腳本1.9

jQuery('.mean-expand').on("click",function(e){ 

我對使用的jQuery 1.6.2站點工作,我得到的錯誤,參考上面的代碼:

TypeError: jQuery(...).on is not a function 

有什麼辦法可以改變這個函數,所以它可以使用jQuery 1.6嗎?

編輯 - 我不想升級jQuery,因爲有一些腳本運行失敗,後來jQuery,我發現後來jQuerys是更大的文件。

+0

爲什麼不升級的jQuery然後??? –

+1

錯誤是告訴你到底是什麼問題。如果您需要知道如何替換它,答案是['.live()'](http://api.jquery.com/live)或['.bind()'](http:// api .jquery.com/bind /)或['.delegate()'](http://api.jquery.com/delegate/),具體取決於上下文。 – Blazemonger

+1

將'.on'換成'.bind' –

回答

1

運行,因爲.on是重組的.bind().live()的功能的新方法,你應該能夠獲得的與那些的一個工作代碼。

從我看到的情況來看,您使用的是直接綁定(如果您需要更多關於直接綁定的信息,請查看.on()方法的jQuery文檔),.bind是您需要的。

更改您.on().bind()

jQuery('.mean-expand').bind("click",function(e){...}); 
+0

其他答案也很好,但這是最簡單的最容易實現的答案。謝謝 – Jon

+0

如果有人使用此解決方案,請使用.unbind替換.off。 – Jon

2

從那個特別的聲明中沒有使用委託的事件處理程序,你可以簡單的使用這個

jQuery('.mean-expand').click(function(){...}); 
2

,如果你想保留jQuery的1.6.x版,您可以添加過多的1.9.x;

<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.x.js"></script> 

然後,

<script type="text/javascript"> 
var j_1_9_x = $.noConflict(true); 

(function($){ 
    // Write jquery 1.9.x related code here 
    $('.mean-expand').on("click", function(e){ ... 
}(j_1_9_x)); 

</script> 

或者你可以更新的功能;

jQuery('.mean-expand').click(function(){... 

,以使其與1.6.x的

+0

是的這個作品 - 謝謝。但我確實發現切換.on for .bind是一個更簡單的答案。雖然這是一個更清晰的代碼,點擊括號... – Jon

+0

@Jon我正在閱讀其他答案,並在這裏看到您的評論。是'.click()'更乾淨,但性能較差。我認爲提及它很重要:click是'.on('click',fn)''或'.bind('click')''的簡寫。 –

+0

'.on()'和'.bind()'實際上是相同的,但'.on()'也可以做事件委託,這就是爲什麼我更喜歡 –