jqTransform更新选择选项

时间:2011-08-11 20:19:51

标签: javascript jquery drop-down-menu jqtransform

我正在动态改变选择列表的选项。我正在使用jqTransform插件。它不会自动更新,我没想到会这样,但我可以找到一种更新显示的方法。我甚至找不到完全删除它的方法。

我想要的是找到一个方法,比如formelement.jqTransformUpdate()来解决这个问题。有什么想法吗?

5 个答案:

答案 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();