$ (...). on не является функцией - ошибка jQuery

Я использую диалоговое окно, которое я закрываю, когда пользователь нажимает в любом месте страницы, ожидая этого диалогового окна.

Вот мой код:

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

Как-то его возвращение ошибки:

$ (...). on не является функцией

Что не так с моим кодом?

Я использую jquery-1.6.1.min.js, но я не могу обновить его до последней версии. Я связан.

Есть ли другой способ сделать это?

Ответ 1

Метод на была введена в JQuery версии 1.7.

Я думаю, вам нужно обновить библиотеку jQuery до самой новой версии.

В противном случае вы можете использовать bind:

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

Ответ 2

Замена для.on() в jQuery> 1.4.2 является делегатом()

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

Ответ 3

$( ".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(); 
});

Ответ 4

Как JQuery 1.6.1 не поддерживает on так что вы можете использовать в live

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

});

Ответ 5

Попробуйте live, а не on его в JQuery версии проблемы

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