$(...)。on不是函数 - jQuery Error

时间:2014-02-07 10:27:18

标签: jquery jquery-ui dialog

我正在使用对话框,当用户点击页面上的任意位置时,我正在关闭该对话框。

这是我的代码:

$('body').on('click','.ui-widget-overlay',function()
{ 
    $('#myRateSettingsPopup').dialog('close'); 
}); 

不知怎的,它返回了一个错误:

$(...)。on不是函数

我的代码出了什么问题?

我正在使用jquery-1.6.1.min.js,但我无法将其更新到最新版本。我受约束。

还有其他办法吗?

5 个答案:

答案 0 :(得分:55)

方法on是在jQuery 1.7版本中引入的。

我认为你必须将你的jQuery库升级到最新版本。

否则,您可以使用bind

$( ".ui-widget-overlay" ).bind( "click", function(e) {
    $('#myRateSettingsPopup').dialog('close');
    e.stopPropagation(); 
});

答案 1 :(得分:4)

jQuery中的.on()替换> 1.4.2是delegate()

$('body').delegate('.ui-widget-overlay', 'click', function () {
    $('#myRateSettingsPopup').dialog('close');
});

答案 2 :(得分:2)

$( ".close" ).bind( "click", function(e) {
$('#popup1').hide();
    e.stopPropagation(); 
});

的jquery-1.7 jqueryui / 1.8.2完美。

或您的叠加

$( ".YOUR OVERLAY" ).bind( "click", function(e) {
$('#YOUR POPUP').hide();
   e.stopPropagation(); 
});

答案 3 :(得分:1)

由于jquery 1.6.1不支持on,因此您可以使用live

$('body').live('click','.ui-widget-overlay',function(event)
{ 
          event.stopPropagation();        
          $('#myRateSettingsPopup').dialog('close'); 

});

答案 4 :(得分:0)

尝试使用live代替on jquery版本问题

$('body').live('click','.ui-widget-overlay',function()
{ 
    $('#myRateSettingsPopup').dialog('close'); 
});