Jquery统一更新不起作用

时间:2011-10-23 18:13:54

标签: jquery ajax uniform

我在我正在研究的项目之一上使用jquery制服。由于这是管理员面板,我真的没有选择显示。我会解释我的问题

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

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

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();在处理数据之前调用,所以我尝试使用$.ajax async: false但没有运气。

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

提前谢谢。

5 个答案:

答案 0 :(得分:14)

首次调用$.uniform()时,它会将所有指定的元素收集到受影响元素的内部数组中。当您致电$.uniform.update()时,它只会重新调整已收集的元素。

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

答案 1 :(得分:5)

for load()if fix promblem

$('#dialog').load(url + ' #forload', function() {$('#dialog').find('select').uniform(), $('#dialog').find('input:checkbox').uniform()})

答案 2 :(得分:2)

你试过这个吗?

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

就我而言,问题已经解决了。

旧制服的版本可能会引起你的问题。

答案 3 :(得分:1)

另一个解决方案可能就是这个

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

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

答案 4 :(得分:1)

试试这个:

   $('.elementClass').uniform();