2013-04-23 36 views
5

Nếu tôi đính kèm một xử lý sự kiện sử dụng .ajaxStop như thế này:Remove xử lý sự kiện được sử dụng bởi .ajaxStop

$(document).ajaxStop(function() { 
    //Some code 
}); 

Làm thế nào để loại bỏ mà xử lý sự kiện?

+0

có thể là '.off()' hoặc '.unbind()' sẽ giúp –

+0

và mã nào sẽ chính xác để sử dụng trong trường hợp này ?? –

+0

xem bạn có câu trả lời cho số –

Trả lời

3

sử dụng .off()

Di chuyển một event handler.

$("#elementID").off() 

này loại bỏ tất cả các xử lý sự kiện từ thành phần được chọn

+0

Nhưng mã chính xác trong trường hợp này là gì? –

+0

cho rằng bạn cần phải cung cấp cho chúng tôi với mã số và cho chúng tôi biết những gì actaully bạn cần .. mà sự kiện bạn đang nói về ?? và như vậy trên – bipen

+0

Tôi muốn trình xử lý .ajaxStop ngừng thực thi mã mà tôi đã cung cấp cho nó –

12

Hãy thử unbinding nó, như vậy:

$(document).ajaxStop(function() { 
    $(this).unbind("ajaxStop"); 
    //Some code 
}); 

Đó là cách tôi đã làm việc đó.

+0

Điều này làm việc cho tôi :) Cảm ơn. – Qerjiuthn

+0

Tôi cần sử dụng '$ (document) .unbind ('ajaxStop');' thay vì '$ (this)'. – Tim

+0

'unbind' của jQuery không được dùng như phiên bản 3.0, thay vào đó hãy sử dụng' off'. – Tim

0

Nếu bạn cần phải đảm bảo rằng mã xử lý bên trong phương pháp ajaxStop() được thực hiện trước khi nó được lấy ra, tôi đề xuất như sau:

$(document).ajaxStop(function(){  
    // Functions there 

    $(this).unbind("ajaxStop"); 
}); 

Particulary hữu ích nếu bạn có nhiều khả năng $ .ajax trong cùng một trang và bạn muốn kiểm soát nơi thực thi mã ajaxStop(). Sau đó, bạn chỉ cần sử dụng mã này bên trong hàm jQuery cần thiết.

+0

'unbind' của jQuery không được dùng như phiên bản 3.0, sử dụng' off' thay thế. – Tim

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