萬盛學電腦網

 萬盛學電腦網 >> 腳本專題 >> javascript >> jquery中trigger()無法觸發hover事件的解決方法

jquery中trigger()無法觸發hover事件的解決方法

   jquery中trigger() 方法觸發被選元素的指定事件類型了,但有使用過程中會碰到一些問題了,下面我們一起來看看jQuery中trigger()觸發hover事件疑問,希望對各位有幫助。

  今天做一個項目,遇到了一個問題,是以前沒有遇到過的,就此記上一筆。

  1、trigger方法解釋

  官方是這麼解釋的:

  復制代碼 代碼如下:

  Description: Execute all handlers and behaviors attached to the matched elements for the given event type.

  用法:

  .trigger( eventType [, extraParameters] )

  其中eventType包含javascript內置的事件、jQuery增加的事件和自定義事件。例如:

  ?

1 2 3 4 5 6 7 8 9 10 $('#foo').bind('click', function() { alert($(this).text()); }); $('#foo').trigger('click'); $('#foo').bind('custom', function(event, param1, param2) { alert(param1 + "n" + param2); }); $('#foo').trigger('custom', ['Custom', 'Event']);

  很強大,常常用於頁面初始化的時候使用。

  2、trigger遇到hover

  ?

1 2 3 4 5 6 7 8 9 var $search=$('#header .search'); $search.find('li').hover(function() { alert(1); },function() { alert(2); }); $search.find('li').eq(0).trigger('hover');

  無法觸發hover。但是:

  ?

1 2 3 4 5 6 7 8 9 var $search=$('#header .search'); $search.find('li').click(function() { alert(1); },function() { alert(2); }); $search.find('li').eq(0).trigger('click');

  觸發click正常!

  解決辦法:

  ?

1 2 3 4 5 6 7 8 9 var $search=$('#header .search'); $search.find('li').hover(function() { alert(1); },function() { alert(2); }); $search.find('li').eq(0).trigger('mouseenter');//hover修改為mouseenter/mouseleave/mouseover/mouseout

  同樣的情況存在於jQuery.live(),不過live不推薦在1.7以後版本使用,使用on()代替。

  以上所述就是本文的全部內容了,希望大家能夠喜歡。

copyright © 萬盛學電腦網 all rights reserved