2011-10-23 25 views
7

Tôi đang sử dụng đồng phục jquery trên một trong những dự án tôi đang làm việc. Vì đây là bảng quản trị, tôi thực sự không có tùy chọn để hiển thị. Tôi sẽ giải thích vấn đề của tôiCập nhật đồng phục Jquery không hoạt động

Điều tôi đang cố gắng làm là khá đơn giản. Tôi đang thêm một số phần tử biểu mẫu (như chọn, hộp kiểm, nhập văn bản) vào trang có ajax.

Mọi thứ đều hoạt động ngoại trừ việc tạo kiểu lại các yếu tố biểu mẫu được thêm động.

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

Bất kỳ ai cũng gặp sự cố tương tự? Ngay cả onClick của tôi, onChange chức năng đang làm việc mà không có một vấn đề (động được thêm vào các yếu tố hình thức), nó chỉ là, $.uniform.update(); dường như không hoạt động.

Tôi nghĩ rằng dữ liệu xử lý có thể mất nhiều thời gian hơn để $ .uniform.update(); được gọi trước khi dữ liệu được xử lý vì vậy tôi đã thử $.ajax với async: false mà không có may mắn.

Tôi sẽ rất vui nếu có ai gặp vấn đề như vậy hoặc ai biết được giải pháp có thể giúp tôi giải quyết vấn đề này.

Cảm ơn bạn trước.

Trả lời

14

Khi $.uniform() lần đầu tiên được gọi, nó thu thập tất cả các phần tử được chỉ định vào một mảng nội bộ của các phần tử bị ảnh hưởng. Khi bạn gọi $.uniform.update() nó chỉ đơn giản là restyles những yếu tố đã được thu thập.

Để thêm các yếu tố bổ sung, bạn có thể cần gọi lại $.uniform(), chuyển qua bộ chọn chỉ xác định những phần tử mới được thêm động.

+0

Cảm ơn bạn đã trả lời nhanh. Thật không may đã không hoạt động. – Revenant

+3

Không có ý tưởng tại sao nhưng điều này làm việc $ ("chọn, đầu vào: hộp kiểm, đầu vào: radio, đầu vào: tập tin"). Uniform(); $ .uniform.update(); mà không có .update() vẫn không hoạt động và tôi không hiểu tại sao tôi phải sử dụng .update() sau khi thêm các phần tử vào bộ đồng phục. – Revenant

+0

$ .uniform.update(); làm việc cho tôi :) cảm ơn –

5

cho tải() nếu sửa chữa promblem

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

Cảm ơn bạn - Tôi đã có một vấn đề nhận được thống nhất để phong cách một yếu tố lựa chọn sau khi sử dụng .load() và điều này hoàn toàn cố định nó cho tôi. – MikeH

1

Một giải pháp khác có thể đây

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

200 hoặc một số cao hơn có thể cần.

+0

Giải pháp này thực sự được khuyến nghị cho mỗi lần đọc đồng bộ và [vấn đề liên quan # 270] (https://github.com/pixelmatrix/uniform/issues/270) –

+0

Giải pháp này thực sự hiệu quả. Trong hộp kiểm tra trường hợp của tôi, trong hộp thả xuống – Prasanth

1

Bạn đã thử điều này chưa?

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

Trong trường hợp của tôi, nó giải quyết được sự cố.

đồng phục phiên bản cũ có thể có vấn đề như bạn đã có.

0

Sử dụng số này $ ('. ElementClass'). Uniform();

Các vấn đề liên quan