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

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

WBOY
發布: 2016-05-16 16:00:25
原創
1195 人瀏覽過

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

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

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

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板