$(…)。on不是函数 – jQuery Error

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

这是我的代码:

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

它以某种方式返回错误:

$(…)。on不是函数

我的代码出了什么问题?

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

有没有其他方法可以做到这一点?

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

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

否则,您可以使用bind :

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

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

 $('body').delegate('.ui-widget-overlay', 'click', function () { $('#myRateSettingsPopup').dialog('close'); }); 
 $( ".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(); }); 

由于jquery 1.6.1不支持on所以你可以使用live

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

尝试live而不是它的jquery版本问题

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