#c# #fancybox
#c# #fancybox
Вопрос:
Почему не работает fancybox после проверки проверки в c #?
fancybox вызывается после use PageMethods.ValidacionIsAdmin(onSuccessValidacionIsAdmin);
, если он действителен, возврата базы данных, выполненной в:
[WebMethod]
public static DeleteAccountResult ValidacionIsAdmin()
{
DeleteAccountResult res = new DeleteAccountResult();
... // Query to database with ok results
res.ok = true;
return res;
}
Вызов ajax в клиенте для его проверки:
jQuery(".delete a").click(function () {
function onSuccessValidacionIsAdmin(data) {
if (data.ok == true) {
jQuery("#<%= divError.ClientID %>").hide();
jQuery(".delete a").fancybox({
content: jQuery('#eliminar-cuenta').html(),
modal: false,
showCloseButton: false,
onComplete: function () {
jQuery("input[type=checkbox]").uniform()
jQuery('#privacidad').fancybox({
enableEscapeButton: false,
hideOnOverlayClick: false,
showCloseButton: true,
onComplete: function () {
jQuery('#fancybox-close').off().on('click', function (e) {
e.preventDefault();
jQuery(".delete a").click();
});
}
});
}
});
}
else {
jQuery("#<%= divError.ClientID %>").show();
jQuery("#lblError")[0].innerHTML = data.strError;
}
}
PageMethods.ValidacionIsAdmin(onSuccessValidacionIsAdmin);
});
Поведение выглядит так: после нажатия ссылки, которая открывает fancybox, она не открывается, похоже, что она «обновляет» веб, и я нажимаю ту же ссылку, и тогда она работает…
Я прочитал, что fancy не работает после ajax-вызова (в моем случае проверки c #)
Мой вопрос: почему это происходит?
Комментарии:
1. да, что я должен увидеть в fiddle?
2. вы можете создать демо-версию там и поместить ссылку здесь, чтобы другой пользователь мог поиграть с ней jsfiddle.net
3. как я могу имитировать ajax-запрос? в jsfiddle
Ответ №1:
После нескольких часов расследования я получил решение. Любопытно, что во всех свойствах ineas писать контент : … Я заменил как: ‘content’: …
Я добавил свойство ‘type’:’html’
После этого fancybox работал.
jQuery(".delete a").fancybox({
'content': jQuery('#eliminar-cuenta').html(),
'type': 'html',
'modal': false,
'showCloseButton': false,
'onComplete': function () {
jQuery("input[type=checkbox]").uniform()
jQuery('#privacidad').fancybox({
enableEscapeButton: false,
hideOnOverlayClick: false,
showCloseButton: true,
onComplete: function () {
jQuery('#fancybox-close').off().on('click', function (e) {
e.preventDefault();
jQuery(".delete a").click();
});
}
});
}
});
Комментарии:
1. Я думаю, это был скорее
type:'html'
вариант, который сделал свое дело2. Было любопытно, но когда я внес это изменение, все работает, за исключением того, что когда вы нажимаете закрыть в углу, диалоговое окно снова появляется, и это цикл. с showCloseButton до false я избегаю щелчка пользователя и пишу в конце диалогового окна обычную кнопку для закрытия. Но теперь он работает