我正在动态更改选择列表的选项。我正在使用 jqTransform 插件。它不会自动更新,我没想到会自动更新,但我可以找到更新显示的方法。我什至找不到完全删除它的方法。
我想要的是找到一种方法,例如 formelement.jqTransformUpdate() 来解决这个问题。有任何想法吗?
我正在动态更改选择列表的选项。我正在使用 jqTransform 插件。它不会自动更新,我没想到会自动更新,但我可以找到更新显示的方法。我什至找不到完全删除它的方法。
我想要的是找到一种方法,例如 formelement.jqTransformUpdate() 来解决这个问题。有任何想法吗?
我知道这是一个老问题,但也许它可以帮助某人。我找不到答案,所以我查看了 jqtransform.js 代码。
只需评论这一行:
if($select.hasClass('jqTransformHidden')) {return;}
然后,在“onchange”事件运行之后:
$('#container select').jqTransSelect();
function selectRating(rating) {
$("#ratingModal .jqTransformSelectWrapper ul li a").each(function() {
if (parseInt($(this).attr("index")) == rating - 1) {
$(this).click();
}
});
}
我在自己的应用程序中使用的一个 JS 函数,用于选择具有给定评级的特定选项。我认为您可以对其进行修改以满足您的需求。
这个想法是使用 a.click 事件处理程序在转换后的选择列表中选择特定选项。
您好,请尝试以下操作以选择性地将样式重新应用到新创建的或从 ajax 请求返回的选择框
$('#container select').jqTransSelect();
关于这个:
每次我现在调用它时,都会向页面添加另一个下拉列表
当您评论此行时:
if($select.hasClass('jqTransformHidden')) {return;}
在下面添加:
if($select.hasClass('jqTransformHidden')) $select.parent().removeClass();
这不是一个非常优雅的解决方案,但它适用于我的情况,新的选择仍然嵌套在子元素中等等,但它工作正常。
可能会更好,尝试在 jqtransform.js 中添加新方法:
$.fn.jqTransSelectRefresh = function(){
return this.each(function(index){
var $select = $(this);
var i=$select.parent().find('div,ul').remove().css('zIndex');
$select.unwrap().removeClass('jqTransformHidden').jqTransSelect();
$select.parent().css('zIndex', i);
});
}
之后,只需在每次需要刷新下拉列表时调用它:
$('#my_select').jqTransSelectRefresh();