5

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

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

4

5 回答 5

3

我知道这是一个老问题,但也许它可以帮助某人。我找不到答案,所以我查看了 jqtransform.js 代码。

只需评论这一行:

if($select.hasClass('jqTransformHidden')) {return;}

然后,在“onchange”事件运行之后:

$('#container select').jqTransSelect();
于 2012-04-25T14:06:25.717 回答
1
function selectRating(rating) {
   $("#ratingModal .jqTransformSelectWrapper ul li a").each(function() {
     if (parseInt($(this).attr("index")) == rating - 1) {
         $(this).click();
     }
   });      
}

我在自己的应用程序中使用的一个 JS 函数,用于选择具有给定评级的特定选项。我认为您可以对其进行修改以满足您的需求。

这个想法是使用 a.click 事件处理程序在转换后的选择列表中选择特定选项。

于 2011-11-24T10:12:29.460 回答
0

您好,请尝试以下操作以选择性地将样式重新应用到新创建的或从 ajax 请求返回的选择框

$('#container select').jqTransSelect();

于 2011-09-16T06:54:02.060 回答
0

关于这个:

每次我现在调用它时,都会向页面添加另一个下拉列表

当您评论此行时:

if($select.hasClass('jqTransformHidden')) {return;}

在下面添加:

if($select.hasClass('jqTransformHidden')) $select.parent().removeClass();

这不是一个非常优雅的解决方案,但它适用于我的情况,新的选择仍然嵌套在子元素中等等,但它工作正常。

于 2013-09-25T20:46:31.167 回答
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();
于 2015-06-30T18:58:21.273 回答