首頁 >web前端 >js教程 >jquery中trigger()無法觸發hover事件的解決方法_jquery

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

WBOY
WBOY原創
2016-05-16 16:00:251197瀏覽

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

1、trigger方法解釋

官方是這麼解釋的:

複製程式碼 程式碼如下:

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

用法:
.trigger( eventType [, extraParameters] )

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

$('#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

var $search=$('#header .search');
$search.find('li').hover(function()
{
 alert(1);
},function()
{
 alert(2);
});
$search.find('li').eq(0).trigger('hover');

無法觸發hover。但是:

var $search=$('#header .search');
$search.find('li').click(function()
{
 alert(1);
},function()
{
 alert(2);
});
$search.find('li').eq(0).trigger('click');

觸發click正常!

解決方法:

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()代替。

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn