$()。selectpicker()不是Bootstrap Select创建动态元素的函数

时间:2017-03-06 08:40:26

标签: javascript jquery dom bootstrap-select

我在下拉列表中使用bootstrap select。

如果我在加载时设置列表,它将运行良好。

示例:

<div class="col-md-6" id="target">
               <select class="selectpicker" id="select-picker" multiple>
                      <option>Sunday</option>
                      <option>Monday</option>
                      <option>Tuesday</option>
                      <option>Wednesday</option>
                      <option>Thursday</option>
                      <option>Friday</option>
                      <option>Saturday</option>
                </select>
</div>

如果我尝试动态创建该元素并刷新 选择选择器,

  var data = '<div class="col-md-6"><select name="date[]" class="selectpicker" multiple>'+
             '<option>Sunday</option><option>Monday</option>' +
                '<option>Tuesday</option><option>Wednesday</option>' +
              <option>Thursday</option><option>Friday</option><option>Saturday</option></select></div>';

 $('#target').append(data);

 $('.selectpicker').selectpicker('refresh');

它生成错误,

  TypeError: $(...).selectpicker is not a function

这段代码出了什么问题?

(“Selectpicker”在加载时工作正常,它不仅仅支持动态元素。)

2 个答案:

答案 0 :(得分:0)

编辑: 我在

之前遇到过类似的错误
  

TypeError:$(...)。selectpicker不是函数

这是因为我正在加载jQuery两次。在第二次加载jQuery库之后,jQuery命名空间上的所有Plugins注册都消失了。所以这可能是这里的问题。

此外,您按类名访问元素,但未在动态HTML中提供类名

尝试

var data = '<div class="col-md-6"><select name="date[]" class="selectpicker" multiple>'+
             '<option>Sunday</option><option>Monday</option>' +
             '<option>Tuesday</option><option>Wednesday</option>' +
             '<option>Thursday</option><option>Friday</option><option>Saturday</option></select></div>';

注意

class="selectpicker"

答案 1 :(得分:0)

您需要在选择中添加课程selectpicker。此外,您错过了data变量定义的最后一行的引号。它应该是这样的:

var data = '<div class="col-md-6"><select name="date[]" class="selectpicker" multiple>'+
         '<option>Sunday</option><option>Monday</option>' +
         '<option>Tuesday</option><option>Wednesday</option>' +
         '<option>Thursday</option><option>Friday</option><option>Saturday</option></select></div>';

Here是一个有效的jsFiddle演示。