Проблема JQModal с использованием модальностей Inline и AJAX на одной странице - PullRequest
0 голосов
/ 13 июля 2010

Я использую JQModal на странице ASP.Net в двух разных режимах.Для некоторых модальных видов я показываю содержимое Inline со страницы.Для других модальных видов я использую атрибут AJAX в JQModal для отображения контента с внешней страницы.Я считаю, что эти два режима, кажется, конфликтуют друг с другом.Например, если я открываю модал AJAX на странице, выполняю некоторые действия и закрываю, а затем открываю один из встроенных модалов на странице, выполняю некоторые действия и затем пытаюсь закрыться, я получаю странные ошибки JavaScript JQuery / JQModalнапример, следующее:

Microsoft JScript runtime error: 'a' is null or not an object

-или-

Microsoft JScript runtime error: 'h' is null or not an object

Если, пока я на странице, я использую только встроенные модалы, все работает нормально.Но как только я открываю и закрываю один из модалей AJAX, я начинаю видеть ошибки сценариев, возникающие из-за операций в моделях Inline, которые обычно работают.Как будто что-то перемонтируется, когда открыты модалы AJAX, и мне еще предстоит понять, что происходит и как это исправить.

Все мои модалы запрограммированы в коде перед созданием страницы.Ниже приведены выдержки из кода, связывающего встроенные модалы, за которым следует код, связывающий модалы AJAX:

ВСТРОЕННЫЕ МОДАЛИ СТРАНИЦЫ:

$('#<%#Container.DataItem%>')
 .jqm({ modal: true , 
     onShow:function(hash){
           hash.w.css('opacity',1).fadeIn("fast"); 
            },
            onHide: function(hash) {
             hash.w.fadeOut("fast",function() { if(hash.o)     {hash.o.remove();} }); 
 }})
      .jqmAddTrigger($('#<%#Container.DataItem%>Open'))
      .jqmAddClose($('#<%#Container.DataItem%>Close')); 

СТРАНИЦЫ AJAX МОДАЛЫ:

$('#digitalModal')
    .jqm({ modal: true, ajax: '@href', ajaxText: 'Please Wait...',  trigger: 'a.digitalTrigger',
     onHide: UpdateParentState});   
});

В качестве другого более конкретного примера, если я открою встроенный модал, который выполняет jqmHide для этого модального $('#modInline-' + itemNumber).jqmHide(), все будет хорошо, пока я не открою модал AJAX.Если я открою модальное AJAX, закрою, открою модальное Inline, эта же строка кода, которая работала до этого, выдаст ошибку: Ошибка времени выполнения Microsoft JScript: «a» - ноль или не объект.

Есть кто-нибудьеще испытали это или могли бы знать, что происходит?

Заранее спасибо

1 Ответ

0 голосов
/ 14 июля 2010

Это оказалось довольно глупо, конечно. Я включил библиотеки JQuery и JQModal на страницу AJAX, отображаемую в модальном режиме, и они конфликтовали с библиотеками на родительской странице.

...