2009-06-17 12 views
7

Tôi có một phần tử với một thuộc tính title (ví dụ, một tooltip), được bọc trong một số container:Tooltips (title = "...") sẽ không hiển thị trong Firefox

<div id="foo"> 
    <input type="text" title="A tooltip" /> 
</div> 

và tôi đính kèm một "mousemove" nghe sự kiện trên thùng và dừng sự kiện tuyên truyền:

document.getElementById('foo').addEventListener(
    'mousemove', 
    function(e) { e.stopPropagation() }, 
    false 
) 

sự kết hợp này dừng lại tuyên truyền của "mousemoves" trên thùng tại ngăn ngừa các tooltip hiển thị lên cho hộp văn bản bên trong, trong Firefox 2 và upwar ds. Tôi đã thử FF 2 [.0.0.20], 3 [.0.11] và phiên bản mới nhất 3.5 (Windows Server 2003, XP).

Như một bài tập nhanh chóng, Firefox người dùng có thể nhìn thấy lỗi này trong hành động bằng cách chạy logic tương đương sau như trên vào thanh địa chỉ của bạn:

javascript:void($('div.vote').mousemove(function(e){ e.stopPropagation() })) 

Bây giờ di chuột lên bất kỳ số phiếu bầu lên, bỏ phiếu xuống, hoặc dấu sao (mục yêu thích) cho câu hỏi này. Chú giải công cụ không còn xuất hiện nữa. Một lần nữa, trong Firefox chỉ.

Có ai có giải pháp cho hành vi/lỗi này trong Firefox không? Có ai khác chứng kiến ​​điều này không?

Cập nhật: Dường như Firefox sử dụng "di chuyển chuột ngừng" để kích hoạt chú giải công cụ trong chrome của trình duyệt (ví dụ: nút quay lại/tiến). Xem https://bugzilla.mozilla.org/show_bug.cgi?id=82953. Tuy nhiên tôi không thể biết điều này có ảnh hưởng đến DOM hay không.

Cập nhật: Có vẻ như Firefox 10 là phiên bản cuối cùng thể hiện hành vi này. Firefox 11.0 trở đi hiển thị chú giải công cụ bất kể sự kiện tuyên truyền.

Cập nhật: Firefox 33 (.1) không còn hiển thị hành vi này nữa.

+0

"Chú giải công cụ cho nút" Bỏ phiếu "không còn xuất hiện khi bạn để chuột qua nó." Sai. –

+0

Ditto, không xảy ra với tôi. – cgp

+1

Điều đó đúng với tôi. –

Trả lời

1

Tôi đã xác nhận vấn đề này. Tôi thậm chí đã cố gắng tuyên truyền các sự kiện bằng tay để chỉ hộp nhập liệu sử dụng mã này:

<div id="foo" title="A tooltip 2"> <input title="A tooltip" type="text" id="bar"/> 
</div> 
<script type="text/javascript"> 
document.getElementById('foo').addEventListener(
    'mouseover', 
    function(e) { 
     e.stopPropagation(); 
     if (document.createEvent) { 
      var inputBox = document.getElementById('bar'); 
      var evt = document.createEvent("MouseEvents"); 
      evt.initMouseEvent("mousemove", true, true, window, e.detail, e.screenX, e.screenY, e.clientX, e.clientY, false, false, false, false, null, null); 
      inputBox.dispatchEvent(evt); 
     } 
    }, 
    false 
) 
</script> 

Không xúc xắc. Tuy nhiên, các sự kiện chuột khác, bao gồm di chuột qua, dường như hoạt động tốt.

Tôi tin rằng đây là lỗi. Mặc dù nó không được liệt kê trong bugzilla, tìm kiếm dường như indicate a correlation giữa sự kiện "di chuột qua" và chú giải công cụ.

Bạn có thể tải xuống phiên bản mới nhất nightly build của Firefox tại đây và xem liệu nó có còn ở đó không. Nếu có, file a bug.

Thay vào đó, tôi sẽ thấy nếu di chuột qua có thể cung cấp cho bạn hiệu quả mong muốn.

0

Gần đây tôi đã đọc một số addOns firefox (tức là thanh công cụ của Google) dẫn đến sự cố với tiêu đề chú giải công cụ. Hủy kích hoạt chúng và kiểm tra xem điều này có giải quyết được vấn đề của bạn hay không.