7

我在我正在进行的一个项目中使用 jquery 制服。由于这是管理面板,我真的没有选择显示。我会解释我的问题

我想做的很简单。我正在使用 ajax 向页面添加一些表单元素(如选择、复选框、文本输入)。

除了重新设计那些动态添加的表单元素之外,每一件事都有效。

function step2 () {
    $.post( siteUrl + "includes/ajax/members/add-subscription.php?do=step2", $("#selectedSubscribers").serialize(), function( data ) { 
        $('.step2_content').html(data);
        $.uniform.update(); 
    });
 }

有人遇到过类似的问题吗?甚至我的 onClick、onChange 函数都可以正常工作(动态添加的表单元素),它只是,$.uniform.update();似乎不起作用。

我认为处理数据可能需要更长的时间,所以 $.uniform.update(); 在处理数据之前调用,所以我尝试$.ajaxasync: false没有运气。

如果遇到此类问题或知道解决方案的人可以帮助我解决此问题,我将很高兴。

先感谢您。

4

5 回答 5

14

首次调用时$.uniform(),它将所有指定元素收集到受影响元素的内部数组中。当你调用$.uniform.update()它时,它只是重新设置那些已经收集的元素。

要添加其他元素,您可能需要$.uniform()再次调用,传递一个选择器,仅标识那些新的、动态添加的元素。

于 2011-10-23T18:23:07.080 回答
5

如果解决问题,则用于 load()

$('#dialog').load(url + ' #forload', function() {$('#dialog').find('select').uniform(), $('#dialog').find('input:checkbox').uniform()})
于 2012-03-19T12:45:28.697 回答
2

你试过这个吗?

$.uniform.update("#select_element_id");

就我而言,问题已解决。

作为旧版本的制服,可能会导致您的问题。

于 2013-06-19T12:46:10.863 回答
1

另一种解决方案可能是这样

setTimeout("$('.uniform_element').uniform();",200);

可能需要 200 或更高的数量。

于 2012-12-19T17:32:42.523 回答
1

尝试这个:

   $('.elementClass').uniform();
于 2014-01-23T05:43:55.170 回答