2009-12-30 36 views
5

Có cách nào để di chuột qua một phần tử bằng javascript không? Tôi không muốn tạo một lớp khác, tôi chỉ muốn tạo phần tử để di chuột bằng javascript khi con trỏ chuột của tôi không nằm trên phần tử đó.Mục di chuột với JQuery

Ví dụ: tôi có 5 phần tử với cùng một lớp và tôi muốn di chuột qua tất cả các phần tử khi một trong số chúng thực sự được di chuột.

+1

bạn đang nói về cái gì? – SLaks

+0

Bạn chính xác có ý nghĩa gì khi "di chuột qua mục"? Làm cho nó trông khác nhau? –

Trả lời

6

Tôi giả sử bạn có nghĩa là lớp giả :hover mà bạn đã liên kết với liên kết (ví dụ). Khi bạn di chuột qua liên kết đó, bạn muốn gọi tất cả các kiểu :hover của liên kết khác.

Thật không may, bạn không thể gọi các kiểu :hover từ jQuery, yêu cầu bạn thực sự di chuyển con trỏ chuột qua phần tử đó. Bạn phải sử dụng các lớp và sử dụng sự kiện di chuột của jQuery.

2

Nếu tôi hiểu câu hỏi của bạn một cách chính xác, bạn đã thêm một sự kiện hover bằng jQuery và bạn muốn kích hoạt sự kiện đó theo cách thủ công bất kể con chuột.

Nếu tôi hiểu chính xác, bạn muốn gọi số mouseenter để kích hoạt sự kiện mouseenter.

Nếu tôi đã hiểu không chính xác và bạn thực sự có quy tắc CSS :hover mà bạn muốn kích hoạt bằng Javascript, điều đó là không thể.
Thay vào đó, bạn nên thêm tên lớp vào quy tắc (ví dụ: something:hover, something.FakeHover { ... }) và thêm tên lớp đó bằng cách sử dụng jQuery. (ví dụ: $(...).addClass('FakeHover')).

0

Trong jQuery, the trigger function cho phép bạn kích hoạt sự kiện (bao gồm mouseover, tôi tin) trên các yếu tố.

Trong JavaScript thẳng, nếu bạn đã gán một hàm cho trình xử lý sự kiện của phần tử, bạn có thể gọi tất nhiên bất cứ khi nào bạn muốn. Ví dụ.

function mouseoverHandler() { 
    // Do something 
} 

// Assign function to element’s event handler 
document.getElementById('link1').onmouseover = mouseoverHandler 

// Call that function 
document.getElementById('link1').onmouseover(); 
+2

Bạn thậm chí không cần 'trigger', gọi sự kiện mà không có chức năng gọi lại cũng hoạt động, ví dụ' $ ('# foo'). Click(); 'sẽ kích hoạt sự kiện click của' # foo'. –

+0

Phải, nhưng tôi không nghĩ rằng nó hoạt động để 'di chuột qua '. Theo [tài liệu] (http://docs.jquery.com/Events), 'mouseover()' chỉ cho phép bạn liên kết một hàm với sự kiện di chuột của phần tử. Nó không cho phép bạn kích hoạt sự kiện. –

+1

Mặc dù tài liệu không đề cập đến nó, nó hoạt động cho 'mouseover'. Tôi kiểm tra nguồn. – SLaks

3

Bạn có thể đạt được điều này bằng cách giải quyết tất cả các mục trong bộ sưu tập của bạn cùng một lúc trong xử lý sự kiện di chuột của bạn

var items = $(".some-class-applied-to-many-different-items"); 
items.hover(function() { 
     // Mouseover state 
     items.addClass("blah"); // <- for example 
    }, 
    function() { 
     // Mouseout state 
     items.removeClass("blah"); 
}); 
+0

Tôi rất muốn biết phiếu bầu xuống là cho. –

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