2010-12-12 36 views
5

Thư viện nguồn jQuery UI chứa tệp jquery.simulate.js để mô phỏng các sự kiện chuột và bàn phím. Lợi ích của việc sử dụng hàm mô phỏng đó thay vì sử dụng jQuery event methods khi thử nghiệm công cụ giao diện người dùng jQuery là gì?Sự khác biệt giữa các phương thức sự kiện jquery.simulate.js và jQuery?

+0

Zardoz, các phương thức sự kiện jquery có thể có tất cả các công cụ cần thiết cơ bản, nhưng plugin có thể có nhiều công cụ nâng cao hơn..và nó được dùng cho các sự kiện. – kobe

+0

@if bạn không thể tự mình làm điều gì đó và nếu ai đó đã làm điều đó cho bạn, thì bạn có thể vào ... plugin – kobe

+0

@gov ... Tôi không thấy bất kỳ nội dung nâng cao nào trong đó. Dường như với tôi cả hai đều kích hoạt các sự kiện tương tự. Có thể ai đó của nhóm UI jQuery đang ở đây để trả lời câu hỏi đó. – Zardoz

Trả lời

4

Tệp jquery.simulate.js chỉ được sử dụng để mô phỏng sự kiện - nó không cung cấp hệ thống quản lý sự kiện đầy đủ như jQuery. Điều này có nghĩa, nó tạo ra một đối tượng sự kiện giả mạo, và sau đó gửi sự kiện này đến DOM. Điều này có thể được so sánh với phương pháp .trigger() của jQuery, điều tương tự.

Tuy nhiên, có nhiều thuộc tính trên đối tượng sự kiện có thể được sửa đổi, bao gồm cả bong bóng hay không, phần tử nguồn là gì, cho dù có phím đặc biệt nào hay không , v.v. jQuery ẩn chúng khỏi chúng tôi khi chúng tôi gọi .trigger(), bằng cách chỉ đặt các thuộc tính cần thiết cho một số giá trị mặc định. Mặt khác, jquery.simulate.js được thiết kế cho kiểm tra (lưu ý rằng tệp nằm trong "jquery-ui/tests /"). Đối với mục đích thử nghiệm, bạn muốn kiểm soát chi tiết hơn đối tượng sự kiện để bắt chước tương tác người dùng thực sự tốt hơn.

Tóm tắt câu chuyện dài, trừ khi bạn đang thử nghiệm, rất có thể bạn sẽ không cần jquery.simulate.js chút nào. Ngay cả khi bạn muốn một số chức năng mà nó cung cấp, hãy cảnh báo rằng tệp không chính thức là một phần của thư viện jquery-ui.

+1

-1. Bạn đã bỏ lỡ một điểm rất quan trọng ở đây. .trigger() sẽ chỉ gọi các trình xử lý sự kiện, nếu có, cho các sự kiện bàn phím và các sự kiện bàn phím thực tế sẽ được kích hoạt. Ví dụ - nếu tôi cần kích hoạt sự kiện bàn phím backspace sao cho ký tự cuối cùng của một phần tử bị xóa, sau đó trigerring keypress/keydown/keyup của sự kiện mà keyCode = 8 sẽ không hoạt động. Sử dụng jquery.simulate.js này có thể làm điều này.https: //github.com/j-ulrich/jquery-simulate-ext đã được xây dựng trên thsi lib. –

+0

Xin vui lòng cho tôi biết nếu bằng cách sử dụng .trigger() bạn có thể đạt được bấm phím thực tế. Tôi cần phải thực hiện tương tự. –

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