Jquery Uniform Update не работает - PullRequest
       57

Jquery Uniform Update не работает

7 голосов
/ 23 октября 2011

Я использую форму 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.Обновить();вызывается до обработки данных, поэтому я попытался $.ajax с async: false, но безуспешно.

Я буду рад, если кто-либо, кто сталкивался с такой проблемой или знает решение, может помочь мне с этой проблемой.

Заранее спасибо.

Ответы [ 5 ]

14 голосов
/ 23 октября 2011

Когда $.uniform() вызывается впервые, он собирает все указанные элементы во внутренний массив затронутых элементов. Когда вы звоните $.uniform.update(), он просто перезапускает те элементы, которые уже были собраны.

Чтобы добавить дополнительные элементы, вам может потребоваться снова вызвать $.uniform(), передав селектор, идентифицирующий только эти новые, динамически добавленные элементы.

5 голосов
/ 19 марта 2012

для load (), если исправить проблему

$('#dialog').load(url + ' #forload', function() {$('#dialog').find('select').uniform(), $('#dialog').find('input:checkbox').uniform()})
2 голосов
/ 19 июня 2013

Вы пробовали это?

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

В моем случае проблема была решена.

Устаревшая версия униформы может стать причиной вашей проблемы.

1 голос
/ 23 января 2014

Попробуйте это:

   $('.elementClass').uniform();
1 голос
/ 19 декабря 2012

Другим решением может быть это

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

200 или может потребоваться большее число.

...