2012-06-17 31 views
16

Tôi đang sử dụng jQuery để phát triển trong môi trường web.jquery trigger hover on anchor

Tôi muốn biết lý do tại sao

$("#a#trigger").trigger('mouseenter'); 
$("#a#trigger").trigger('hover'); 
$("#a#trigger").trigger('mouseover'); 

Cả 3 của những người không làm việc để kích hoạt một chức năng di chuột mà tôi có.

$(function() { 


     $('a#trigger').hover(function(e) { 
      $('div#pop-up').show(); 

      }, function() { 
      $('div#pop-up').hide(); 
     }); 

    }); 

     }); 

a#trigger là tên của neo, và #pop-up là một phần tử div trong web của tôi.

Vấn đề là tôi muốn di chuột qua một số sự kiện trong plugin FullCalendar và các chức năng đó không hoạt động. Cảm ơn.

+6

không sử dụng tên thẻ ở phía trước ID trong bộ chọn, kém hiệu quả hơn chỉ sử dụng ID – charlietfl

Trả lời

61

Bạn đang đi đúng hướng, vấn đề là thêm # trong bộ chọn, chỉ cần loại bỏ các hash đầu tiên:

$("a#trigger").trigger('mouseenter'); 

Lưu ý rằng kể từ khi ID phải là duy nhất, không cần phải chỉ định loại phần tử, $('#trigger') hiệu quả hơn.

Cũng lưu ý rằng:

Không dùng nữa trong jQuery 1.8, loại bỏ trong 1.9: Tên "hover" sử dụng như một cách viết tắt cho chuỗi "mouseenter mouseleave". Nó gắn một trình xử lý sự kiện duy nhất cho hai sự kiện đó và trình xử lý phải kiểm tra event.type để xác định xem sự kiện có là mouseenter hoặc mouseleave. Không nhầm lẫn tên sự kiện giả "hover" với phương thức .hover(), chấp nhận một hoặc hai hàm.

+5

wow im mù như địa ngục sau 25 giờ lập trình, cảm ơn bạn rất nhiều. và nó đã được Mouseenter bằng cách này..hover không làm việc @undefined –

+0

@OriGavrielRefael bạn được chào đón :) – undefined

+0

Tôi không biết tại sao tôi thất bại bằng cách sử dụng 'trigger (mouseenter)' bằng cách nào đó, nhưng kết thúc thành công bằng cách viết một ' .hover' và làm 'addClass ('hover')'. – Liber

8

Bộ chọn jQuery của bạn phải được viết như ví dụ:

$('a#trigger'); 

thay vì $('#a#trigger');

Trong jQuery một # trong một selector phù hợp với một id. Trong trường hợp này, trigger là id nhưng a là một phần tử HTML và không yêu cầu tiền tố.

mã cuối cùng của bạn sẽ là:

$("a#trigger").trigger('mouseenter'); 
$("a#trigger").trigger('hover'); 
$("a#trigger").trigger('mouseover');