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