... или Почему $(this).dialog()
терпит неудачу в Firefox при использовании динамического HTML?
У меня есть событие click, которое открывает модальное диалоговое окно jQuery на веб-странице, и оно отлично работает в Chrome и IE, но не в Firefox.
Вот соответствующий код:
var dialogId = 'uniqueName-' + Math.floor(Math.random() * 1000)
var dialogDiv = $(document.createElement('div')).attr("id", dialogId);
dialogDiv.load(this.href, function () {
var dialog = $(this).dialog({ autoOpen: false });
...
});
В Firefox 11 $(this).dialog({ autoOpen: false })
завершается ошибкой со следующим сообщением об ошибке:
$ (this) .dialog не является функцией
Но в IE 9 и Chrome 17 все работает нормально. Любая подсказка, почему это?
UPDATE:
Вот моя document.ready
функция, где был код выше. Я удалил это, чтобы упростить вещи. ALERT A происходит до ALERT B. ALERT A говорит [object Object]
. ALERT B происходит, когда я нажимаю на ссылку и на ней написано 'undefined'
.
$(function () {
alert($.ui); // ALERT A
// Wire up the click event of any dialog links
$('.dialogLink').live('click', function () {
alert($.ui); // ALERT B
return false;
});
});
ОБНОВЛЕНИЕ 2:
Теперь, когда я указал, откуда возникла проблема, я перефразировал мой вопрос и разместил здесь минимальный код для воспроизведения исходной проблемы: Почему FF на OS X теряет jQuery-UI в обработчике событий щелчка?