【问题标题】:Why close dropdown, wherever I click on opened modal?为什么要关闭下拉菜单,无论我在哪里单击打开的模式?
【发布时间】:2017-06-03 21:16:36
【问题描述】:

我想请求一些帮助。这是那个页面:link 如果我点击第二家零售商的优惠券按钮,页面会显示一些代码。当我单击“获取优惠券代码”时,一切正常。代码将显示并且模态可见。

但是当我点击模态框(.sweet-overlay、.sweet-alert 或按钮)上的任意位置时, 下拉菜单关闭。 :(

我尝试了所有方法,但仍然无法为我工作。例如:

$('.sweet-overlay').on({
    "click":function(e){
      e.stopPropagation();
    }
});

我认为这是最简单的解决方案,但为什么不起作用?

提前感谢您提供可能的解决方案。

【问题讨论】:

  • 我正在尝试理解这个问题。我转到链接,然后单击第二家零售商的“优惠券代码”。然后我点击“获取优惠券代码”,它打开了一个带有正确商店的新标签。此外,在您的页面中,它向我显示了一个模式,表明优惠券代码已激活。我在这里没有看到任何问题。究竟是什么问题?
  • 毕竟,当您单击模式上或模式外的任意位置时,下拉菜单正在关闭。 :( 我希望用户立即看到显示的代码。
  • 告诉我你的代码控制open类?
  • 要查看php源码吗?

标签: javascript modal-dialog dropdown


【解决方案1】:

第一次我在您的网站中发现了一个问题,id 应该是唯一的,并且我多次看到它,您对此有控制权吗?

<div id="myDropdown" class="dropdown keep-open">

试试preventDefault

说明:如果调用此方法,则不会触发事件的默认动作。

$('.sweet-overlay').on({
    "click":function(e){
      e.preventDefault();
    }
});

【讨论】:

  • 我刚刚尝试了另一种解决方案,但它一直留在这里。 $('.dropdown.keep-open').on({ "shown.bs.dropdown": function() { $(this).attr('closeable', false); }, "click": function() { }, "hide.bs.dropdown": function() { return $(this).attr('closeable') == 'true'; } }); $('.keep-open #dLabel').on({ "click": function() { $(this).parent().attr('closable', true ); } }) 有了这个 js 下拉菜单打开,但是,当我点击其他下拉菜单时,最后一个没有关闭。
  • @user8106622 解决了您的问题?然后作为答案发布并接受它。
  • 这个工作,但是,如果我使用这个,下拉不关闭,如果打开另一个。
  • @user8106622 尝试在此处重现您的问题,以便我们进行调试,仅从外观上很难调试
  • 好的,现在我添加了另一个适合我的解决方案。 $('.dropdown.keep-open').on({ "shown.bs.dropdown": function() { $(this).attr('closeable', false); }, "click": function() { }, "hide.bs.dropdown": function() { return $(this).attr('closeable') == 'true'; } }); $('.keep-open #dLabel').on({ "click": function() { $(this).parent().attr('closeable', true ); } }) 现在有了这个 js 下拉菜单没有关闭,当我单击模式上的任意位置时,但如果我再单击一个下拉菜单,最后一个将保持打开或切换。
【解决方案2】:

尽量不要使用data-dismiss="modal"

您实际上可以通过使用以下组合来防止关闭模式 preventDefault() ,stopPropagation()

    $('.sweet-overlay').on({
        "click":function(e){
          e.stopPropagation();
          e.preventDefault();
        }
    });

【讨论】:

  • 我在任何地方都找不到:data-dismiss="modal"
猜你喜欢
  • 2019-12-02
  • 2020-02-11
  • 2013-11-13
  • 1970-01-01
  • 1970-01-01
  • 2020-08-11
  • 2017-12-01
  • 1970-01-01
  • 2022-01-05
相关资源
最近更新 更多