2014-02-05 58 views
-1

我正在使用帶有隻有1.6 jquery的cms的hammer.js。所以函數「()」不可用,而不是我必須用 「生活()」,有它的兩個實例將.on()轉換爲.live()向後兼容性問題

1.

var hammertime = new Hammer(element[0], { drag_lock_to_axis: true }); 
hammertime.on("release dragleft dragright swipeleft swiperight", handleHammer); 

2.

this.init = function() { 
     setPaneDimensions(); 

     $(window).on("load resize orientationchange", function() { 
      setPaneDimensions(); 

的jQuery作爲新的document.ready不使用JavaScript的流量,操作

的工作順序

誰能幫助我轉換這兩個功能?我在一個不知如何不能更新?

+0

1.6有權訪問.delegate,它採用了幾乎相同的語法來。對(事件名稱和選擇器被交換)。 –

+0

https://api.jquery.com/jQuery.noConflict/ –

+0

將.on替換爲.delegate。更好的解決方案是使用jQuery.noConfilict – Satpal

回答

2

如果我遇到這個問題,唯一的選擇是使用1.6,我會填充.on,以便後來當我能夠從1.6升級到1.9+,它會無縫升級。

(function($){ 
    if (!$.fn.on) { 
     $.fn.on = function(events,selector,data,handler){ 
      if (typeof selector !== "string") { 
       return this.bind.apply(this,arguments); 
      } 
      return this.delegate(selector,events,data,handler) 
     } 
    } 
})(jQuery); 

(這是意在被包括作爲一個獨立的外部腳本,則包括的jquery後)

http://jsfiddle.net/Nt8Q8/