Nov*_*der 9 jquery select reload jquery-dropkick
我使用一个简单的选择列表和jquery.dropkick库来使它美丽.现在我想在更改相应的select元素后更改该dropkick内容(一个新选项进来).但只需调用$('#select').dropkick(); 不起作用.
它看起来似乎不受支持.仅仅从头开始重建那个dropkick就足够了.有没有可能"破坏"那个dropkick对象,然后通过调用.dropkick()方法重建它?
Dio*_*ode 23
我遇到了同样的问题,无法找到解决方案,但最终成功地使这个黑客工作.
$select = $("#select1");
$select.removeData("dropkick");
$("#dk_container_select1").remove();
$select.append("<option>opt4</option>");
$select.append("<option>opt5</option>");
$select.dropkick();
Run Code Online (Sandbox Code Playgroud)
小智 14
我利用Diode的答案来修改Dropkick代码,使其更加清晰:
// Reload the dropkick select widget after options have changed
// usage: $("...").dropkick('reload');
methods.reload = function () {
var $select = $(this);
var data = $select.data('dropkick');
$select.removeData("dropkick");
$("#dk_container_"+ data.id).remove();
$select.dropkick(data.settings);
};
Run Code Online (Sandbox Code Playgroud)
在dropkick.js中的以下代码段后面添加上面的代码:
methods.reset = function () {
...
};
Run Code Online (Sandbox Code Playgroud)
然后你可以以编程方式使用它:
$('#my-select').html("<option>new options</option>");
$('#my-select').dropkick('reload');
Run Code Online (Sandbox Code Playgroud)
nun*_*nya 13
对于更新的访客.Dropkick使用重置方法...不重绘.
$("select").dropkick('reset');
Run Code Online (Sandbox Code Playgroud)