2013-08-14 30 views
5

Tôi đang sử dụng typeahead.js để đánh máy.Có cách nào để đóng menu thả xuống cho typeahead.js không?

tôi về cơ bản muốn làm ngược lại điều này: Programmatically triggering typeahead.js result display

tôi đã cố gắng để làm một .trigger('blur'); trên typeahead, nhưng tôi thiết lập giá trị ngay trước đó bằng cách làm .typeahead('setQuery', value);. Việc 'setQuery' kích hoạt một yêu cầu ajax để tìm nạp kết quả với cụm từ truy vấn mới. Vì vậy, "làm mờ" diễn ra, nhưng hộp được mở ngay sau đó.

+0

Vì vậy, bạn muốn thả xuống để ẩn sau khi bạn 'setQuery'? FYI điều này có thể yêu cầu một số thay đổi cho các plugin chính nó. –

+0

Đúng, và tôi biết:/ – tubaguy50035

Trả lời

-2

Thay vì gọi setQuery, hãy thêm một hàm khác không thực hiện getSuggestions và bạn sẽ có thời gian tốt.

-1

Bạn có thể kích hoạt 'mờ' trong trình xử lý sự kiện "đã mở". Nếu thả xuống nhấp nháy một lúc, bạn có thể sử dụng CSS để ẩn nó cho tạm thời.

+0

Trình xử lý sự kiện "đã mở" không thực sự được gọi khi hộp đề xuất bật mở. Sự kiện "mở" được gọi khi con trỏ ở đầu vào. – tubaguy50035

-1

Trong trường hợp ai đó đi qua này trong tương lai, cách tốt nhất để làm điều này bây giờ là:

$('.tt-dropdown-menu').css('display', 'none') 

Nếu bạn công cụ nhà phát triển Chrome mở và xem những gì sẽ xảy ra khi bạn gõ và xóa, đây là tất cả Typeahead đang làm, không có gì huyền diệu.

Bên cạnh đó, nếu bạn thử với phiên bản hiện tại (10.5) để thiết lập các truy vấn, bạn sẽ nhận được một lỗi mà trông như thế này:

Uncaught TypeError: Cannot assign to read only property 'highlight' of 
+0

Bất kỳ lý do nào khiến điều này bị giảm giá? – onetwopunch

+0

Vâng tôi đã không downvoted nhưng tôi cho rằng mọi người có thể thích giải pháp để dính vào api. Điều đó nói rằng api không làm việc cho tôi (gọi là typeahead ('close'), vì vậy tôi đoán tôi sẽ lật đổ api.Ngoài ra nếu ai đó đang sử dụng typeahead 0.11 menu .tt-dropdown dường như chỉ là tt-menu. – user254694