2017-05-08 419 views
0

我动态添加select2类到当前点击元素,但搜索框在第二次点击后出现。它应该首先点击元素。动态添加select2类到当前点击元素

例:

$(document).on('click', 'select', function() {    
    $(this).select2(); 
}); 

感谢

+0

您能否向我们提供您的问题的工作片段? –

+0

它工作https://jsfiddle.net/br3t/z5ogefz8/ – br3t

+0

尝试用'$(this).select2()。select2('open');'替换行$(this).select2();'但是为什么你需要这样的行为?从逻辑上讲,所有的选择框都应该在页面加载时转换为'select2'以具有良好的用户体验。 https://jsfiddle.net/z5ogefz8/2/ – vijayP

回答

2

后,选择2已经初始化那么我们就可以用命令再次调用它.select2('open')

希望这是你在找什么。

$(document).on('click', 'select', function() { 
 
    var select2_open; 
 
    $(this).select2().select2('open'); 
 
});
<link href="https://select2.github.io/dist/css/select2.min.css" rel="stylesheet" /> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://select2.github.io/dist/js/select2.full.js"></script> 
 

 
<select class="select"> 
 
    <option value="AL">Alabama</option> 
 
    <option value="WY">Wyoming</option> 
 
</select>

+0

它的工作, 谢谢 –

+0

@VijayKumarYadav非常欢迎 –

0

你并不需要添加onclick

只是$('select').select2();

https://jsfiddle.net/vandolphreyes29/z5ogefz8/7/

+1

我认为你需要再读一遍这个问题。他这样做是为了动态创建元素。 –

+0

哦,对不起,我的坏。谢啦。 –

2

$('.select').select2(); 
 
$(document).on('click', 'select', function() { 
 
    $(this).select2(); 
 
});
<link href="https://select2.github.io/dist/css/select2.min.css" rel="stylesheet" /> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://select2.github.io/dist/js/select2.full.js"></script> 
 

 
<select class="select"> 
 
    <option value="AL">Alabama</option> 
 
    <option value="WY">Wyoming</option> 
 
</select>