Javascript 在.bind()和.on()之间动态切换

Javascript 在.bind()和.on()之间动态切换,javascript,jquery,Javascript,Jquery,我想这样做,因为我正在使用与互联网营销相关的第三方脚本。其中一些可能包含包含在中的jQuery库,它会干扰我网站上最近或最新的jQuery库 因此,我希望在变量的帮助下,在网站加载时动态地在.on()和.bind()之间切换 例如,假设我有全局变量: var incJS = false; 现在,根据第三方脚本的不同,我知道他们是否包含旧的Lib,所以我会使用这个 function tpNetwork () { incJS = true; startGateway('XXXXX

我想这样做,因为我正在使用与互联网营销相关的第三方脚本。其中一些可能包含包含在中的jQuery库,它会干扰我网站上最近或最新的jQuery库

因此,我希望在变量的帮助下,在网站加载时动态地在.on()和.bind()之间切换

例如,假设我有全局变量:

var incJS = false;
现在,根据第三方脚本的不同,我知道他们是否包含旧的Lib,所以我会使用这个

function tpNetwork ()
{
    incJS = true;

    startGateway('XXXXX');

    $('#fancybox-outer')
        .delay(1000)
        .fadeTo(300, 1);

    preventGTW();
    widgetStyle();
}
现在您可以看到,在最底部有一个函数
widgetStyle()

该函数包含大量内容,但重要部分如下:

$(window).on('resize', function () {
    if ($('.widget_wrap').length) widgetCenter_horizontal();
});
这里有.on()方法。这在第三方网络使用的非常旧的jQuery中是不受支持的。我想用.bind()切换每一个.on(),但我不知道如何在不重复的情况下切换。 我是这样做的,但这是重复的,我相信有更简单的方法

if (!incJS)
{
    $(window).on('resize', function () {
        if ($('.widget_wrap').length) widgetCenter_horizontal();
    });
}
else
{
    $(window).bind('resize', function () {
        if ($('.widget_wrap').length) widgetCenter_horizontal();
    });
}
任何提示/帮助都将不胜感激。我真的没有任何想法,通过研究我什么也没发现。

关于:

$(function(){
    if(!$.fn.on) $.fn.on = $.fn.bind;
});
当然,这不包括任何代表团的支持


多亏了@smerny的评论和@broading的回答,我做到了这一点,解决了我的问题。感谢您提供的所有提示和答案

$.fn.onbind = function () {
    if (!ajaxGateway)
        $.fn.onbind = $.fn.on;
    else
        $.fn.onbind = $.fn.bind;
};
现在一切都按照我的要求进行了。下面是一个例子

$(window).onbind('resize', function () {
    if ($('.widget_wrap').length) widgetTop();
});

可以使用您的逻辑创建您自己的jq函数。然后用它来代替或绑定-@smerny阅读我的想法,听起来像是最干净的方法最干净的方法是使用无冲突模式。