2012-06-17 75 views
16

我使用jQuery在Web環境中開發。jQuery的觸發器懸停在錨點

我想知道爲什麼

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

那些所有3不工作啓動,我有一個懸停功能。

$(function() { 


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

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

    }); 

     }); 

a#trigger是錨的名稱,#pop-up是在我的網頁div元素。

問題是我想將鼠標懸停在FullCalendar插件中的某些事件上,並且這些功能不起作用。 謝謝。

+6

不要在選擇器的ID前面使用標記名,比單獨使用ID的效率低 – charlietfl

回答

61

你是在正確的軌道上,這個問題是在選擇額外的#,只是刪除了第一哈希:

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

注意,因爲ID必須是唯一的,不需要指定元素類型,$('#trigger')更高效。

還要注意的是:

不贊成使用jQuery的1.8,在1.9中刪除:用作字符串"mouseenter mouseleave"的簡寫名稱"hover"。它爲這兩個事件附加一個事件處理程序,處理程序必須檢查event.type以確定事件是mouseenter還是mouseleave。不要將"hover"僞事件名稱與.hover()方法混淆,該方法接受一個或兩個函數。

+5

經過25個小時的編程之後,就像地獄一樣盲目,非常感謝。 它是Mouseenter的方式..不工作 @undefined –

+0

@OriGavrielRefael歡迎:) – undefined

+0

我不知道爲什麼我以某種方式使用'trigger(mouseenter)'失敗,但最終通過編寫' .hover'類並執行addClass('hover')'。 – Liber

8

你的jQuery選擇器應該寫成例如。

$('a#trigger'); 

代替$('#a#trigger');

在jQuery中的選擇器#匹配的ID。在這種情況下,trigger是一個id,但a是一個HTML元素,不需要前綴。

您的最終代碼如下:

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