2011-06-28 41 views
30

Tôi nghĩ rằng tôi đã tìm ra ... xem nhận xét của tôi. Lấy làm tiếc.tự kích hoạt khóa jquery?

Tôi có dịch vụ web JSON được gọi trên một sự kiện keyup() nào đó truy xuất một số dữ liệu dựa trên dữ liệu nhập. Tôi muốn tải một bộ dữ liệu ban đầu trước khi mọi thứ được nhập. Tôi đang cố gắng để tự gọi khóa() như đã nêu trong tài liệu, nhưng nó dường như không làm bất cứ điều gì.

$('#inputItemName').keyup(function() { 
//perform query, display results 
}); 

^^ hoạt động tuyệt vời khi bạn nhập vào hộp

$('#inputItemName').keyup(); 

^^ gọi ngay sau khi chức năng tài liệu đã sẵn sàng, dường như không làm gì cả.

+1

Tôi nghĩ rằng tôi đã tìm ra ... Tôi đã di chuyển hàm gọi kết quả cao hơn trong thẻ tập lệnh hơn lệnh gọi khóa() và giờ nó hoạt động. Điều đó có ý nghĩa? –

+1

Có: bạn phải đính kèm một chức năng vào trình kích hoạt ** trước ** kích hoạt nó! (nếu không sự kiện được kích hoạt, nhưng không có chức năng nào được gọi) – oliverpool

Trả lời

44

Hoạt động tốt cho tôi: http://jsfiddle.net/radu/gD5WL/

$('#test').keyup(function() { 
    console.log('hello'); 
}); 

$('#test').keyup(); 

Sự kiện keyup được gọi khi tải trang.

+1

Vì vậy, các trick đã được đặt hàng. Vì câu trả lời của tôi không phổ biến nên tôi đã thay đổi câu trả lời được chấp nhận cho bạn. –

0

Bạn đang thiếu các điểm đánh dấu băm cho id trong thứ hai:

$('#inputItemName').keyup();

+0

Xin lỗi, vừa cập nhật ... Tôi có điều đó trong đó ngay bây giờ và nó vẫn không hoạt động. –

+0

Tạo jsFiddle và chúng ta sẽ xem xét. – glortho

2

Bạn đang thiếu một # trong selector ... thử với băm ...

$('#inputItemName').keyup();

28
$('#inputItemName').trigger('keyup'); 
+0

cảm ơn, nó là cách đơn giản và tốt nhất – PyDroid

-2

Hãy thử này: function kích hoạt

$('#inputItemName').bind('keyup',function() { 
    //stuff 
}); 
0

Tôi nghĩ rằng tôi figured it out ... Tôi di chuyển các chức năng mà các cuộc gọi được kết quả cao hơn trong các thẻ script hơn KeyUp() gọi và bây giờ nó hoạt động. Điều đó có ý nghĩa?

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