我正在使用对话框,当用户点击页面上的任意位置时,我正在关闭该对话框。
这是我的代码:
$('body').on('click','.ui-widget-overlay',function()
{
$('#myRateSettingsPopup').dialog('close');
});
不知怎的,它返回了一个错误:
$(...)。on不是函数
我的代码出了什么问题?
我正在使用jquery-1.6.1.min.js,但我无法将其更新到最新版本。我受约束。
还有其他办法吗?
答案 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');
});