jQuery модальный и проблема загрузки
У меня проблема с jQuery dialog
а также load
на веб-приложении я разрабатываю.
На странице результатов поиска, на каждую запись у меня есть ссылка, которая дает быстрый просмотр результата, запускает модальное диалоговое окно, которое извлекает и показывает html-контент, используя загрузку jQuery.
Все отлично работает, и я могу без проблем закрывать и открывать диалоги.
Я хотел бы добавить функцию в это диалоговое окно со ссылкой внизу, которая должна вызвать другой JQuery load
показывая еще одну крошечную часть HTML.
Эта функция работает только в первый раз; Когда я закрываю диалоговое окно, выбирая другой предварительный просмотр, первая загрузка работает как обычно, но нажатие на ссылку ничего не показывает.
Это фрагмент моего кода:
function preview(question_id, service){
var jQuerydialog = jQuery('<div>loading</div>');
jQuerydialog.dialog({
title: 'Preview',
modal: true,
jQuerydialog.load('/url...','', function (responseText, textStatus, XMLHttpRequest) {
}
);
return false;
}
function preview_see_more(answer_id, service){
jQuery('#see_more').append('<div>loading </div>').load('/url....','', function (responseText, textStatus, XMLHttpRequest) {
alert('performed!')
}
);
return false;
}
Добавление оповещения ("выполнено") на preview_see_more
load callback, это предупреждение выдается каждый раз, когда вызывается функция, и с помощью firebug я вижу вызов ajax, запущенный со статусом 200.
preview
функция используется для загрузки основного превью; в нижней части основного окна предварительного просмотра есть ссылка на preview_see_more
функция, которая должна добавить еще одну часть html (на самом деле это происходит только при первом создании предварительного просмотра)
Есть намеки?
РЕДАКТИРОВАТЬ:
вот пример результата поиска.
Нажав на [Q], preview
функция срабатывает.
Я работаю (все еще на моей тестовой машине), чтобы добавить ссылку в нижней части диалогового окна, которая должна вызвать preview_see_more
функция.
EDIT2:
вот пример с проблемой в доказательстве.
Нажмите на [Q] первой ссылки; затем нажмите "показать принятый ответ".. закройте диалоговое окно и попробуйте снова.
1 ответ
Я хотел бы взглянуть на страницу, на которой еще есть ссылка preview_see_more. Я подозреваю, что вы привязываете ссылку к функции только один раз и перезагружаете контент, а не привязываете функцию в следующий раз. Но было бы гораздо понятнее, если бы вы могли добавить ссылку
Изменить: я добавил это в код, и это сработало.
function quicklook_accepted_answer(answer_id, service){
jQuery('#accepted_answer_block :last').append('<div>loading <img src="/images/indicator.gif"/></div>').load('/quicklookanswer?answer='+ answer_id +'&service='+service,'', function (responseText, textStatus, XMLHttpRequest) {
}
);
return false;
}
Но главная проблема в том, что существует много случаев создания модального всплывающего окна, что вы можете сделать, это удалить модальное окно при нажатии новой кнопки "Q"