在页面上,当用户填写搜索框时,我添加了一个搜索结果 div,其中包含使用 jQuery 克隆的行 (withDataAndEvents = true)。其中一些行包含表单元素和一些 jQuery UI 滑块。这些元素的事件与 knockoutJS 的数据绑定功能绑定。常规表单元素上的事件处理程序工作正常,但不适用于 jQuery UI 滑块。拖动手柄时,它会跳回原始行。
一些代码:
$(divselector).each(function (i, div) {
if (arrPropertyGuids.indexOf($(div).attr("data-propertyguid")) == -1) {
$("#propertiesSearchPanel").append($(div).clone(true).show());
}
});
我遍历一些 div(行)并通过克隆它们将它们一一添加到结果面板中(也尝试过没有区别的深度克隆)。一些 div 隐藏在源代码中,所以我需要调用 .show()。
我所做的尝试:
- 试图重新初始化滑块。但没有检测到不同的行为。
- 尝试在克隆后销毁和初始化滑块,但这会产生错误:
无法在初始化之前调用滑块上的方法;试图调用方法“销毁”
$(".range-slider").slider("destroy");
所以,在我看来,以某种方式,克隆的滑块不是“真正的”jQuery UI 滑块,但仍与原始元素相关联。
任何人都知道如何解决这个问题?