2011-12-01 30 views
7

Tôi đang sử dụng API Google Maps để tạo danh sách các vùng lân cận có thể chọn và sử dụng Lựa chọn để làm cho nó trông đẹp mắt. Vấn đề mà tôi gặp phải là API Maps không nhận được dữ liệu ngay lập tức - nó thực hiện thông qua chức năng gọi lại, có nghĩa là Chosen tự áp dụng trước khi các tùy chọn được thêm vào, và kết quả là các tùy chọn không chạy thông qua lựa chọn (kết quả là họ không hiển thị ở tất cả).Làm cách nào để tự động thay đổi hộp chọn đã chọn?

Tôi nghĩ theo lý thuyết, nó sẽ hoạt động nếu tôi chỉ có thể lấy các phần tử trong lựa chọn trước khi chọn được áp dụng, nhưng tôi không chắc chắn làm thế nào để làm điều đó một cách chính xác. Có suy nghĩ gì không?

+1

Bạn đã xem phần "Thay đổi/Cập nhật sự kiện" trong tài liệu chưa? – Simon

Trả lời

18

Đã thử những tài liệu đề xuất?

Đang cập nhật Chosen động

Nếu bạn cần cập nhật các tùy chọn trong lĩnh vực lựa chọn của bạn và muốn Chosen để đón những thay đổi, bạn sẽ cần phải kích hoạt các "Liszt: cập nhật" sự kiện trên cánh đồng. Người được chọn sẽ tự xây dựng lại dựa trên nội dung cập nhật .

jQuery Version: $("#form_field").trigger("liszt:updated"); 
Prototype Version: Event.fire($("form_field"), "liszt:updated"); 

Hoặc, nếu sử dụng một phiên bản mới hơn:

jQuery Version: $("#form_field").trigger("chosen:updated"); 
Prototype Version: Event.fire($("form_field"), "chosen:updated"); 

http://harvesthq.github.com/chosen/

+0

oh Tôi cũng bỏ lỡ điều đó trong tài liệu ... thỉnh thoảng xảy ra ... :) –

+3

Bây giờ là: $ ("# form_field"). Trigger ("đã chọn: cập nhật"); –

+0

@DanyMarcoux cảm ơn nhận xét, bài đăng hiện đã được cập nhật với mã được cập nhật. –

4

Đối phiên bản đã chọn < 1.0 thì:

$("#form_field").trigger("liszt:updated"); 

Đối với phiên bản đã chọn> = 1.0 thì:

$("#form_field").trigger("chosen:updated"); 
Các vấn đề liên quan