【问题标题】:jQuery jqModal Ajax and nested modal problemsjQuery jqModal Ajax 和嵌套模态问题
【发布时间】:2009-04-27 17:06:26
【问题描述】:

我刚开始使用 jqModal,因为我需要对嵌套模式的支持。我注意到嵌套模式和 AJAX 的一些不稳定行为,但我不知道如何修复它。发生的情况是,当我加载其中有一个嵌套模式的主模式时,我得到了两个 jqmOverlay div,这就像它为两个模式应用了覆盖,即使尚未触发嵌套的一个。因此,当我关闭模式时,仍然会显示一个叠加层。代码如下:

// Main Modal
$(function(){
  $("#modal").jqm({ajax:'@href'});
});
<a class="label jqModal" href="/suppliers/2/edit">View Supplier</a>


// Nested Modal code fragment within the /suppliers/2/edit html
$(function(){
  $("#nested_modal").jqm({ajax:'@href', zIndex:3001});
})
<a class="button jqModal" href="/suppliers/6/bills/new">Add Bill</a>

它似乎第一次工作,但如果我关闭主模式,然后再次打开,我会遇到双重覆盖问题。这是一个错误吗?还是我调用嵌套模式的方式?另外,我知道它与嵌套模式有关,因为当我删除嵌套模式上的 jqm 调用时,主模式每次都能正常工作。

【问题讨论】:

  • 可能是您没有正确关闭嵌套模式?您是否使用自定义“关闭”功能?每次关闭时,jqmOverlay div 都应该在 DOM 中销毁。
  • 我正在使用标准 取消
  • 我认为无论如何更重要的是找出为什么要创建两个叠加层。我可以看到它们都被附加在萤火虫中。此外,由于两个叠加层的不透明度为 50%,我实际上可以看到叠加层 bg 颜色的差异

标签: jquery ajax jqmodal


【解决方案1】:

我的嵌套 AJAX jqModals 也有类似的问题。以下是解决方案:toTop 参数与 z-index 结合使用。

设置嵌套模态的高 z-index,然后在创建 JQM 时将 toTop 设置为 true。例如:

// Nested:
<div id="test" style="z-index: 5000;">Test content</div>
...
<script type="text/javascript">
$.ready(function(){
    $('#test').jqm({
    toTop:                  true,
    modal:                  true,
    overlay:                10,
    });
});
</script>

使用 z-indextoTop 参数应该有助于解决您的问题。

【讨论】:

  • 感谢您的回复。我希望很快有机会玩弄这个,所以我可以接受它。
  • 工作起来就像一个魅力,但是当我关闭两个模式时,我现在似乎遇到了问题,初始模式链接打开了两次。一旦我玩得更久,我会添加一个新问题。很抱歉延迟接受
  • 没关系,这是因为我使用的触发器与原始模态触发器相同。将 trigger: '.jqNestedModal' 添加到 jqm 初始化并将类 .jqNestedModal 链接添加到我所有的 ajax 链接修复了问题。再次感谢!
  • 没问题,布拉德,乐于助人!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多