在同一页面上同时使用Inline和AJAX模式的JQModal问题

时间:2010-07-13 18:49:13

标签: jquery ajax jqmodal

我在ASP.Net页面上以两种不同的模式使用JQModal。对于某些模态,我在页面中显示内联内容。对于其他模态,我使用JQModal上的AJAX属性来显示外部页面中的内容。我发现这两种模式似乎相互冲突。例如,如果我在页面上打开一个AJAX模式,执行一些操作并关闭,然后在页面上打开一个内联模式,执行一些操作然后尝试关闭,我得到了奇怪的JQuery / JQModal javascript错误如下:

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

-OR -

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

如果我在页面上时我只使用内联模式,一切正常。但是只要我打开并关闭其中一个AJAX模态,我就会开始看到通常工作的内联模式中的操作引发的脚本错误。当打开AJAX模态并且我还没有掌握正在发生的事情以及如何解决它时,就像是在重新连线。

在呈现页面之前,我的所有模态都在代码隐藏中连接起来。以下是连接内联模态的代码摘录,后面跟着连接AJAX模式的代码:

PAGE INLINE MODALS:

$('#<%#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')); 

PAGE AJAX模式:

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

作为另一个更具体的例子,如果我打开一个对该模态$('#modInline-' + itemNumber).jqmHide()执行jqmHide的内联模态,一切都很好,直到我打开一个AJAX模态。如果我打开一个AJAX模式,关闭,打开内联模式,之前工作的同一行代码将抛出错误:Microsoft JScript运行时错误:'a'为null或不是对象。

是否有其他人经历过此事或可能知道发生了什么?

提前致谢

1 个答案:

答案 0 :(得分:0)

当然,事实证明这是一个相当愚蠢的事情。我在模式中显示的AJAX页面上包含了JQuery和JQModal库,它们与父页面上的库冲突。