Sự khác biệt giữa trình xử lý sự kiện và trình xử lý sự kiện trong JavaScript là gì? Cả hai đều thực hiện một chức năng khi sự kiện xuất hiện. Tôi không thực sự nhận được khi sử dụng trình xử lý sự kiện và thời điểm sử dụng trình xử lý sự kiện.JavaScript - Sự khác nhau giữa trình xử lý sự kiện và người nghe là gì?
Trả lời
Không có sự khác biệt; nó chỉ là thuật ngữ khác nhau cho cùng một điều.
Có nhiều cách khác nhau để liên kết các hàm với các phần tử DOM với mục đích xử lý sự kiện, đó là tất cả. Sự khác biệt xuất hiện trở lại khi các tiêu chuẩn trong thông lượng (hoặc chỉ bởi vì những người triển khai là hornery hoặc khó khăn) nhưng cuối cùng các cơ chế cơ bản giống nhau.
Nếu bạn đang nhầm lẫn về những gì sắp xếp đăng ký xử lý sự kiện để sử dụng, bạn có thể:
- Read more about the topic và chọn một cách tiếp cận để sử dụng, có lẽ trên cơ sở trình duyệt bằng trình duyệt;
- Chọn một trong các framework phổ biến JavaScript và sử dụng cơ chế của nó để gắn bộ xử lý
Một handler và một người biết lắng nghe là một trong cùng - chỉ từ đồng nghĩa cho hàm mà sẽ xử lý một sự kiện. "Người xử lý" có lẽ là thuật ngữ được chấp nhận nhiều hơn, và chắc chắn là đúng ngữ nghĩa hơn đối với tôi. Thuật ngữ "người nghe" bắt nguồn từ mã được sử dụng để thêm sự kiện vào một phần tử:
element.addEventListener('click', function() { /* do stuff here*/ }, false);
Tuy nhiên, bạn có thể thực sự nitpicky và chia hai thành ý nghĩa riêng biệt. Nếu bạn nghiêng, "handler" có thể là thuật ngữ cho hàm sẽ xử lý một sự kiện khi bạn thêm một "listener", do đó người ta có thể có một vài "listeners" sử dụng một "handler" duy nhất. Hãy xem xét:
// handler is synonymous with function
function someFunction(e) {
if (typeof e == 'undefined')
alert('called as a function');
else
alert('called as a handler');
}
// use someFunction as a handler for a
// click event on element1 -- add a "listener"
element.addEventListener('click', someFunction, false);
// use an anonymous function as a handler for a
// click event on element1 -- add another "listener"
element.addEventListener('click', function() { alert('anonymoose'); }, false);
// use someFunction as a handler for a
// click event on element2 -- add a "listener"
element2.addEventListener('click', someFunction, false);
// call someFunction right now
someFunction();
Vì vậy, trong đoạn mã trên, tôi có 2 "trình xử lý" (someFunction và chức năng ẩn danh) và 3 "người nghe".
Một lần nữa, đây là tất cả ngữ nghĩa - cho tất cả các mục đích thực tế mà người nghe và xử lý thuật ngữ được sử dụng thay thế cho nhau. Nếu cần phân biệt thì một người nghe là là đăng ký một sự kiện sẽ kích hoạt cuộc gọi đến một bộ xử lý (chức năng ).
Làm sạch bùn?
để làm cho nó phù hợp với các ý kiến, bạn có thể làm cho nó "element1.addEventListener (...)" –
Nhiều hay ít giống như trong Java. http://stackoverflow.com/a/4725508/3184778. Làm cho ý nghĩa hơn bây giờ. Thx – kouretinho
_Anonymoose_ LOL: P – Arjun
- 1. Sự khác biệt giữa Trình xử lý sự kiện & Trình xử lý sự kiện trong Java là gì?
- 2. Sự khác biệt, nếu có, giữa trình xử lý sự kiện và trình xử lý sự kiện?
- 3. Sự khác nhau giữa các sự kiện logic và sự kiện gốc trong GWT là gì?
- 4. Sự khác nhau giữa các trình xử lý sự kiện và các cuộc gọi lại
- 5. Nhận xử lý khi nghe sự kiện trong JavaScript
- 6. Sự khác nhau giữa CellClick và CellMouseClick là gì?
- 7. Sự khác nhau giữa JavaScript và Java là gì?
- 8. Sự khác nhau giữa JavaScript và JScript là gì?
- 9. Sự khác nhau giữa bộ xử lý 32 bit và 64 bit là gì?
- 10. Sự khác biệt giữa Sự kiện với Người xử lý ủy quyền và những người không có gì?
- 11. Sự khác biệt giữa xử lý ngoại lệ C++, Java và JavaScript là gì?
- 12. Sự kiện Java và trình nghe sự kiện
- 13. Xử lý đa nhân Python: Sự khác nhau giữa bản đồ và imap là gì?
- 14. Sự khác nhau giữa hai mã javascript là gì?
- 15. Sự khác nhau giữa SyncML và CalDAV là gì?
- 16. Sự khác nhau giữa ODBC và OleDB là gì?
- 17. Trình xử lý sự kiện Javascript cho in
- 18. Xử lý điểm cố định: sự khác nhau giữa uint16_t và uint_fast16_t là gì?
- 19. Sự khác nhau giữa Ctrl-C và SIGINT là gì?
- 20. Xem nghe sự kiện - Javascript
- 21. Trình xử lý sự kiện tùy chỉnh JavaScript
- 22. Sự khác nhau giữa RSpec và Cucumber là gì?
- 23. Sự khác nhau giữa giải pháp đa người thuê và đa người dùng là gì?
- 24. Sự khác nhau giữa GEM_HOME và GEM_PATH là gì?
- 25. Sự khác nhau giữa Normalize.css và Reset CSS là gì?
- 26. Sự khác nhau giữa Pyrus và Composer là gì?
- 27. Sự khác nhau chính giữa JavaScript và ActionScript 3 là gì?
- 28. sự khác nhau giữa 'localhost' và '127.0.0.1' là gì?
- 29. Sự khác nhau giữa OllyDbg và WinDbg là gì?
- 30. sự khác nhau giữa touchmove và gesturechange là gì?
Cảm ơn câu trả lời. Vì vậy, khi không có sự khác biệt giữa hai, tôi sẽ chỉ sử dụng các trình xử lý sự kiện, vì sự hỗ trợ của trình duyệt. (Tôi cần hai người nghe, nhưng chỉ có một người xử lý). –
Nhưng ... có * không có sự khác biệt * giữa "người nghe" và "người xử lý", vì vậy những gì bạn có là ba người nghe, hoặc ba người xử lý hoặc bất kỳ sự kết hợp nào. Có lẽ ** không phải là một thói quen tốt để kết hợp các cách xử lý khác nhau, trên thực tế. – Pointy
Ehm, tôi sẽ không trộn chúng. Tôi chỉ nói rằng tôi chỉ cần một người xử lý thay vì hai người nghe (một người nghe cho mô hình sự kiện NS và một cho mô hình sự kiện MS). –