2009-02-02 26 views
7

Tôi đã tìm kiếm điều này một thời gian, nhưng không có bất kỳ lời giải thích nào.Tại sao sự kiện "onmouseover" sử dụng "trả về true" để ngăn chặn hành vi mặc định?

Đối với "onclick" và các sự kiện khác trong javascript, xử lý sự kiện trở về sai có nghĩa là "ngăn chặn hành động mặc định". Tuy nhiên, có một ngoại lệ cho "onmouseover". Để "onmouseover", trả lại true có nghĩa là "ngăn chặn hành động mặc định".

Tại sao có trường hợp ngoại lệ kỳ lạ như vậy đối với "onmouseover"?

Trả lời

6

Thay vì sử dụng trở lại sai/đúng để ngăn chặn hành vi sự kiện mặc định, sử dụng phương pháp default/thuộc tính trên các đối tượng sự kiện:

elem.onmouseover = function(e) { 
    if (!e) var e = window.event; // IE 
    if(e.preventDefault) { 
     e.preventDefault(); 
    } else { 
     e.returnValue = false; // IE 
    } 
} 
2

Ai biết được lý do tại sao thực sự. Theo cách của nó: bạn trả về TRUE từ onmouseover để ngăn url xuất hiện trên thanh trạng thái, đó thực sự là hành vi mặc định.

3

Theo như tôi biết, hãy trả lại true để ngăn url của liên kết hiển thị trên thanh trạng thái là tính năng cụ thể của IE (sai). Và cố gắng hiểu tại sao IE làm mọi thứ theo cách nó thường là một nguyên nhân bị mất - chỉ cần sống với nó ...

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