代码之家  ›  专栏  ›  技术社区  ›  vedankita kumbhar

追加时引导多选下拉菜单不工作

  •  1
  • vedankita kumbhar  · 技术社区  · 7 年前

    我将一个包含多个选择下拉列表的html附加到另一个div上,点击按钮;但在附加div multiple select下拉列表后,该下拉列表不起作用。这是我的密码 Example

    请帮我做这个。谢谢

    5 回复  |  直到 7 年前
        1
  •  2
  •   Alex Mac    7 年前

    请找到下面提到的解决方案。

    <div id="template" class="hidden">
        <div class="form-group" id="multiselect">
            <label class="col-md-4 control-label" for="rolename">Role Name</label>
            <div class="col-md-4">
                <select id="dates-field2" class="multiselect-ui form-control" multiple="multiple">
                    <option value="cheese">Cheese</option>
                    <option value="tomatoes">Tomatoes</option>
                    <option value="mozarella">Mozzarella</option>
                    <option value="mushrooms">Mushrooms</option>
                    <option value="pepperoni">Pepperoni</option>
                    <option value="onions">Onions</option>
                </select>
            </div>
        </div>
    </div>   
    

    这是您的jQuery代码。

    var html = $('#template').html();
    
    $('.multiselect-ui').multiselect({
        includeSelectAllOption: true
    });
    
    $('#append-btn').click(function() {
        $(html).appendTo('.div2');
        $('.multiselect-ui').multiselect({
            includeSelectAllOption: true
        });
    });
    

    你可以在这里找到工作小提琴: https://fiddle.jshell.net/wuyy56gs/1/

        2
  •  1
  •   Jithin Raj P R    7 年前

    这是给你的解决方案 用你自己的小提琴 .

    destroy 任何 plugin 它内部使用 re-init .

    复制HTML代码并重新粘贴

    希望它对您的

    这是Answare的链接 jsfiddle

        3
  •  1
  •   madalinivascu    7 年前

    在调用multiselect之前保存html,在附加multiselect时重新生成它

    var html = $('#multiselect').html();
    
     $('.multiselect-ui').multiselect({
            includeSelectAllOption: true
        });
    
        $('#append-btn').click(function(){
    
         $(html).appendTo('.div2');
        $('.multiselect-ui').multiselect('rebuild')
        })
    

    演示: https://fiddle.jshell.net/wuyy56gs/

        4
  •  1
  •   Shiladitya    7 年前

    https://fiddle.jshell.net/0tpLod7h/1/

    var cnt = 2;
    var html = $('#multiselect').html();
     $('.multiselect-ui').multiselect({
            includeSelectAllOption: true
        });
        
        $('#append-btn').click(function(){
       		cnt++;
         	$(html).appendTo('.div2');
    	    $('.div2 > div').last().find('select').attr('id', 'dates-field' + cnt);
          $('#dates-field' + cnt).multiselect('rebuild');
        })
    span.multiselect-native-select {
    	position: relative
    }
    span.multiselect-native-select select {
    	border: 0!important;
    	clip: rect(0 0 0 0)!important;
    	height: 1px!important;
    	margin: -1px -1px -1px -3px!important;
    	overflow: hidden!important;
    	padding: 0!important;
    	position: absolute!important;
    	width: 1px!important;
    	left: 50%;
    	top: 30px
    }
    .multiselect-container {
    	position: absolute;
    	list-style-type: none;
    	margin: 0;
    	padding: 0
    }
    .multiselect-container .input-group {
    	margin: 5px
    }
    .multiselect-container>li {
    	padding: 0
    }
    .multiselect-container>li>a.multiselect-all label {
    	font-weight: 700
    }
    .multiselect-container>li.multiselect-group label {
    	margin: 0;
    	padding: 3px 20px 3px 20px;
    	height: 100%;
    	font-weight: 700
    }
    .multiselect-container>li.multiselect-group-clickable label {
    	cursor: pointer
    }
    .multiselect-container>li>a {
    	padding: 0
    }
    .multiselect-container>li>a>label {
    	margin: 0;
    	height: 100%;
    	cursor: pointer;
    	font-weight: 400;
    	padding: 3px 0 3px 30px
    }
    .multiselect-container>li>a>label.radio, .multiselect-container>li>a>label.checkbox {
    	margin: 0
    }
    .multiselect-container>li>a>label>input[type=checkbox] {
    	margin-bottom: 5px
    }
    .btn-group>.btn-group:nth-child(2)>.multiselect.btn {
    	border-top-left-radius: 4px;
    	border-bottom-left-radius: 4px
    }
    .form-inline .multiselect-container label.checkbox, .form-inline .multiselect-container label.radio {
    	padding: 3px 20px 3px 40px
    }
    .form-inline .multiselect-container li a label.checkbox input[type=checkbox], .form-inline .multiselect-container li a label.radio input[type=radio] {
    	margin-left: -20px;
    	margin-right: 0
    }
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <div class="form-group" id="multiselect">
        <label class="col-md-4 control-label" for="rolename">Role Name</label>
        <div class="col-md-4">
            <select id="dates-field2" class="multiselect-ui form-control" multiple="multiple">
                <option value="cheese">Cheese</option>
                <option value="tomatoes">Tomatoes</option>
                <option value="mozarella">Mozzarella</option>
                <option value="mushrooms">Mushrooms</option>
                <option value="pepperoni">Pepperoni</option>
                <option value="onions">Onions</option>
            </select>
        </div>
    </div>
    <div class="div2">
    
    </div>
    
    <button id="append-btn">Append
    </button>
        5
  •  1
  •   Bhavin Solanki    7 年前

    您可以附加当前代码的直接html代码。 此示例还允许您 全选 例如:

    <script>
    var i = 0; 
    $('#append-btn').click(function(){
         var html = '';
         html += '<div class="form-group" id="multiselect">';
         html += '<label class="col-md-4 control-label" for="rolename">Role Name</label>';
         html += '<div class="col-md-4 test">';
         html += '    <select id="dates-field2" class="multiselect-ui'+i+' form-control" multiple="multiple">';
         html += '        <option value="cheese">Cheese</option>';
         html += '        <option value="tomatoes">Tomatoes</option>';
         html += '        <option value="mozarella">Mozzarella</option>';
         html += '        <option value="mushrooms">Mushrooms</option>';
         html += '        <option value="pepperoni">Pepperoni</option>';
         html += '        <option value="onions">Onions</option>';
         html += '    </select>';
         html += '</div>';
         html += '</div>';
         $(html).appendTo('.div2');
         $('.multiselect-ui'+i).multiselect({
            includeSelectAllOption: true
         });
         i++
     });
    </script>
    

    https://fiddle.jshell.net/0tpLod7h/2/