2014-02-05 2 views
-1

Я использую hammer.js с cms, который имеет только 1,6 jquery. Таким образом, функция «на() не доступен вместо этого я должен использовать "жить()", Есть два экземпляра негоПреобразование .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, который использует почти идентичный синтаксис .on (имена и селектор событий заменяются.). –

+0

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

+0

Заменить .on с .delegate. Лучшее решение использует jQuery.noConfilict – Satpal

ответ

2

Если бы я столкнулся с этой проблемой, и единственным вариантом было использование 1.6, я бы полиполл. Так, чтобы позже, когда я смог обновиться с 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/

Смежные вопросы