将.on()转换为.live()向后兼容性问题

时间:2014-02-05 18:05:28

标签: javascript jquery

我正在使用hammer.js和一个只有1.6 jquery的cms。所以函数“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无法更新为新文档。已经无法使用javascript流程,操作顺序

任何人都可以帮我转换这两个功能吗?我不知道怎么办?

1 个答案:

答案 0 :(得分: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/