Javascript 为什么要关闭下拉列表,无论我在哪里单击打开的模式?

Javascript 为什么要关闭下拉列表,无论我在哪里单击打开的模式?,javascript,modal-dialog,dropdown,Javascript,Modal Dialog,Dropdown,我想请求一些帮助。这是那一页: 如果我点击第二个零售商的凭证按钮,页面会显示一些代码。当我点击“获取凭证代码”时,一切正常。代码将显示,且模式可见 但当我点击模态上的任何地方(.sweet overlay、.sweet alert或按钮), 下拉列表已关闭( 我什么都试过了,但仍然不适合我。例如: $('.sweet-overlay').on({ "click":function(e){ e.stopPropagation(); } }); 我认为这是最简单的解决方

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

但当我点击模态上的任何地方(.sweet overlay、.sweet alert或按钮), 下拉列表已关闭(

我什么都试过了,但仍然不适合我。例如:

$('.sweet-overlay').on({
    "click":function(e){
      e.stopPropagation();
    }
});
我认为这是最简单的解决方案,但为什么不起作用呢


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

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

尝试
preventDefault

描述:如果调用此方法,则不会触发事件的默认操作

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

尽量不要使用
data dismission=“modal”

实际上,您可以通过组合使用 preventDefault(),StopperPropagation()


我正在试图理解这个问题。我转到链接,然后单击第二个零售商的“凭证代码”。然后单击“获取凭证代码”它打开了一个带有正确商店的新选项卡。此外,在您的页面中,它向我显示了一个模式,表示凭证代码已激活。我在这里看不到任何问题。确切的问题是什么?毕竟,当您单击模式或模式之外的任何位置时,下拉列表将关闭:(我希望用户立即看到显示的代码。显示您的代码控件
open
类?是否要查看php源代码?我刚刚尝试了另一个解决方案,但它仍停留在这里。$('.dropdown.keep open')。在({“show.bs.dropdown”:function(){$(this.attr('closable',false);})上,单击“:function(){},“hide.bs.dropdown”:function(){return$(this.attr('closable')=='true';}});$('keep open#dLabel')。on({“click”:function(){$(this.parent().attr('closable',true);})使用此js,下拉列表保持打开状态,但是,当我单击“其他”下拉列表时,最后一个下拉列表没有关闭。@user8106622解决了您的问题?然后作为答案发布并接受它。这是可行的,但是,如果我使用此按钮,下拉列表不会关闭,如果打开其他按钮。@user8106622尝试在此处重现您的问题,以便我们可以调试,仅从wh调试是很困难的看起来很像Eokay,现在我添加了另一个解决方案,这对我来说是合适的。$('.dropdown.keep open')。在({“show.bs.dropdown”):function(){$(this.attr.):function('closable',false);},“click”:function(){},“hide.bs.dropdown”:function(){return$(this.attr('closable')='true';}}});$('keep open{“click”:function(){$(this).parent().attr('closable',true);}})使用此js时,当我单击modal上的任意位置时,下拉列表不会关闭,但如果我再单击一个下拉列表,最后一个下拉列表将保持打开或切换。我找不到任何位置:data dismise=“modal”
    $('.sweet-overlay').on({
        "click":function(e){
          e.stopPropagation();
          e.preventDefault();
        }
    });