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