2015-01-05 20 views
13

Tôi đang cố gắng loại bỏ đầu vào của nút bằng cách sử dụng thư viện debquing jquery của Ben Alman. http://benalman.com/code/projects/jquery-throttle-debounce/examples/debounce/Chức năng gỡ lỗi trong jQuery

Hiện tại, đây là mã mà tôi có.

function foo() { 
    console.log("It works!") 
}; 

$(".my-btn").click(function() { 
    $.debounce(250, foo); 
}); 

Vấn đề là khi tôi nhấp vào nút, hàm sẽ không bao giờ thực hiện. Tôi không chắc liệu tôi có hiểu lầm điều gì không nhưng theo như tôi có thể nói, mã của tôi khớp với ví dụ.

+0

Đó là một plugin rất nhỏ, nhưng tại sao bạn sẽ cần đến nó, đặc biệt đối với một event handler đó là dễ dàng như vậy để chỉ unbind và rebind -> ** http: //jsfiddle.net/pgabaeju/** – adeneo

+2

Làm thế nào để bạn buộc người tiêu dùng của một plugin jQuery để cài đặt một plugin? Đây phải là một phần của API cốt lõi. Ngoài ra ví dụ jsfiddle của bạn nếu một ga không phải là một debounce. – Sukima

Trả lời

29

Tôi đã gặp sự cố tương tự. Vấn đề đang xảy ra vì hàm debounce trả về một hàm mới không được gọi ở bất cứ đâu.

Để khắc phục điều này, bạn sẽ phải chuyển hàm debouncing làm tham số cho sự kiện nhấp jquery. Đây là mã mà bạn nên có.

$(".my-btn").click($.debounce(250, function(e) { 
    console.log("It works!"); 
})); 
+6

hoặc '$ (". My-btn "), nhấp vào ($. Debounce (250, foo))' tất nhiên. –

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