jquery中trigger()无法触发hover事件的解决方法_jquery
程序员文章站
2022-03-19 10:57:14
...
今天做一个项目,遇到了一个问题,是以前没有遇到过的,就此记上一笔。
Description: Execute all handlers and behaviors attached to the matched elements for the given event type.
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()代替。
以上所述就是本文的全部内容了,希望大家能够喜欢。
推荐阅读
-
Easyui 关闭jquery-easui tab标签页前触发事件的解决方法
-
完美解决jQuery的hover事件在IE中不停闪动的问题
-
jquery mobile的触控点击事件会多次触发问题的解决方法
-
基于jquery trigger函数无法触发a标签的两种解决方法
-
ff下JQuery无法监听input的keyup事件的解决方法
-
jquery中 苹果手机对on触发的点击事件无效果
-
jQuery在iframe中无法弹出对话框的解决方法
-
jQuery动态添加元素无法触发绑定事件的解决方法分析
-
jquery中的常用事件bind、hover、toggle等示例介绍
-
jquery live方法,解决jquery动态添加按钮无法触发点击事件的问题