【问题标题】:Display selectmenu inside jQuery confirm在 jQuery 确认中显示选择菜单
【发布时间】:2017-05-27 09:37:26
【问题描述】:

我有一个 jQUery-confirm,我试图显示一些有选择的内容,而我的 select.selectMenu() 似乎不起作用,因为它显示在 jQUery-confirm 内。它只是显示默认选择。我可以轻松地在范围外的选择上调用 .selectMenu() ,它将从选择更改为选择菜单。示例:

HTML:

 <div id="aDiv"> 
     <select id="aSelect"> <option value="1"> 1 </option></select>
 </div>
 <button type="button" id="aButton">Click </button>

CSS:

#aDiv {
     display: none;
}

JS:

$(document).ready(function() {
  $('#aSelect').selectmenu();
  var divVar = $('#aDiv');
  $('#aButton').on("click", function() {
       $.confirm( {
            title: 'Hello',
            content: '',
            onOpen : function() {
                divVar.show();
                this.setContent(divVar);
            },
            onClose : function() {
               divVar.hide();
            }

         });
     });
 });          

如何让 jquery-confirm 显示 jquery ui 小部件,例如选择菜单?

【问题讨论】:

    标签: javascript jquery jquery-ui select jquery-confirm


    【解决方案1】:

    试试这个,你需要在 jconfirm 中添加 html 标记并初始化 selectMenu 插件,最好将标记写在内容内部而不是在外部定义它。

    $(document).ready(function() {
        // $('#aSelect').selectMenu();
        $('#aButton').on("click", function() {
            $.confirm( {
                title: 'Hello',
                content: function(){
                    return $('#aDiv').html(); // put in the #aSelect html, 
                },
                onContentReady : function() {
                    this.$content.find('#aSelect').selectMenu(); // initialize the plugin when the model opens.
                },
                onClose : function() {
    
                }
            });
        });
    });  
    

    【讨论】:

    • 它有点工作,但现在我有一个新问题。下拉菜单位于 jquery 内容窗口后面,请看这里:imgur.com/a/ayoJz。 selectMenu() 也需要 .selectmenu() :)
    • 我在想 CSS 中的 .ui-selectmenu-menu { z-index: 9999; } 可能会解决问题,但我错了,它没有用。
    • 如何获取 jquery-confirm $.confirm 窗口的 z-index?
    • jconfirm 的 z-index 设置为 99999999,将 .ui-selectmenu-menu 设置得更高。
    【解决方案2】:

    请尝试以下方法:

    您错过了 id

    #
    $(document).ready(function() {
      $('#aSelect').selectMenu();
      var divVar = $('#aDiv');
      $('#aButton').on("click", function() {
           $.confirm( {
                title: 'Hello',
                content: '',
                onOpen : function() {
                    divVar.show();
                    this.setContent(divVar);
                },
                onClose : function() {
                   divVar.hide();
                }
    
             });
         });
     });     
    

    【讨论】:

    • 忘记在示例中添加“#”,我将它们放在我的原始代码中,编辑了问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    相关资源
    最近更新 更多