I nghĩ rằng xử lý sự kiện được xử lý theo thứ tự mà chúng được đăng ký. Nếu đúng như vậy thì nếu tôi đính kèm một trình xử lý sự kiện vào đầu tập lệnh, tôi có thể chắc chắn rằng nó sẽ kích hoạt trước các trình xử lý tiếp theo được gắn vào cùng một sự kiện không? Ngoài ra các không gian tên sự kiện có ảnh hưởng gì đến điều này không? Các trình xử lý sự kiện có được kích hoạt theo chuỗi (kết thúc trước phần tiếp theo) hoặc song song không?Đảm bảo lệnh xử lý sự kiện jQuery
Tôi muốn làm điều này vì tập lệnh của tôi dựa trên kích thước khung nhìn, thay đổi về sự kiện thay đổi kích thước và tôi cần phải liên tục tìm kiếm nó. Thay vì gọi $(window).width()
nhiều lần trong mỗi hàm xử lý của tôi, tôi muốn đặt trình xử lý ở đầu tập lệnh của tôi để lưu $(window).width()
vào thuộc tính đối tượng trên mỗi lần thay đổi kích thước. Sau đó, trong các trình xử lý tiếp theo, tôi có thể truy cập thuộc tính và chắc chắn rằng đó là phép đo gần đây nhất.
Tôi biết tôi có thể tạo sự kiện tùy chỉnh kích hoạt ngay khi tính toán được thực hiện và đính kèm trình xử lý tiếp theo vào sự kiện tùy chỉnh. Nhưng, tôi không muốn làm điều đó bởi vì tôi cần phải duy trì khả năng tương tác với các plugin đến sau của tôi mà cũng có thể được gắn vào sự kiện thay đổi kích thước.
Xem http://stackoverflow.com/questions/290254/how-to-order-events-bound-with-jquery – ustun
Bạn có mất hiệu suất đáng kể đối với '$ (cửa sổ) .width()' không? Nếu không, tại sao lại bận tâm? Bạn sẽ chỉ giới thiệu một sự phụ thuộc mong manh vào trạng thái của một biến toàn cầu. – millimoose
@Inerdial Tôi cần gọi nó và một số tính toán khác như 20 lần. Tôi nghĩ nó sẽ tạo nên sự khác biệt. – ryanve