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增加的事件和自定义事件。例如:

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

时间: 2024-09-11 10:40:32

jQuery中trigger()触发hover事件疑问的相关文章

jquery中trigger()无法触发hover事件的解决方法

  jquery中trigger() 方法触发被选元素的指定事件类型了,但有使用过程中会碰到一些问题了,下面我们一起来看看jQuery中trigger()触发hover事件疑问,希望对各位有帮助. 今天做一个项目,遇到了一个问题,是以前没有遇到过的,就此记上一笔. 1.trigger方法解释 官方是这么解释的: 复制代码 代码如下: Description: Execute all handlers and behaviors attached to the matched elements f

jquery中trigger()无法触发hover事件的解决方法_jquery

今天做一个项目,遇到了一个问题,是以前没有遇到过的,就此记上一笔. 1.trigger方法解释 官方是这么解释的: 复制代码 代码如下: Description: Execute all handlers and behaviors attached to the matched elements for the given event type. 用法: .trigger( eventType [, extraParameters] ) 其中eventType包含javascript内置的事件

jQuery中trigger 事件触发器的使用方法

定义和用法 trigger() 方法触发被选元素的指定事件类型. 触发事件 规定被选元素要触发的事件. 语法 $(selector).trigger(event,[param1,param2,...]) 例子  代码如下 复制代码 html <input id="result" type="hidden" value="0" /> js $(document).ready(function(e){     //自定义resultOK事

jQuery中trigger()与bind()用法分析_jquery

本文实例讲述了jQuery中 trigger()与bind()用法.分享给大家供大家参考,具体如下: trigger(type) 在每一个匹配的元素上触发某类事件. 返回值:jQuery 参数: type (String): 要触发的事件类型 示例: 复制代码 代码如下: $("p").trigger("click") 1.trigger() 触发事件 这个方法是jQuery 1.3中新增的一个引起触发事件的函数. 这里的事件就如jQuery的帮助文档中的事件那一栏

jQuery中trigger()方法用法实例_jquery

本文实例讲述了jQuery中trigger()方法用法.分享给大家供大家参考.具体分析如下: 此方法触发匹配元素指定类型的事件. 语法结构一:规定匹配元素被触发的事件类型. 复制代码 代码如下: $(selector).trigger(event,param1,param2,...) 参数列表: 参数 描述 event 规定指定元素要触发的事件. 可以是自定义事件(使用 bind() 函数来附加),或者任何标准事件. param 可选.传递到事件处理程序的额外参数. 额外的参数对自定义事件特别有

关于jquery中动态增加select,事件无效的快速解决方法_jquery

近来做项目,用的jquery1.6.2库,当动态增加div 及select时,事件却不起作用. 查了一些资料,发现bind事件:向匹配元素附加一个或更多事件处理器.而live事件:为当前或未来的匹配元素添加一个或多个事件处理器. 其资料如下: [bind和live的区别] live方法其实是bind方法的变种,其基本功能就同bind方法的功能是一样的,都是为一个元素绑定某个事件,但是bind方法只能给当前存在的元素绑定事件,对于事后采用JS等方式新生成的元素无效,而live方法则正好弥补了bin

jquery中交替点击事件的实现代码

 这篇文章主要介绍了jquery中交替点击事件的实现代码,需要的朋友可以参考下  代码如下: $('#clickId').toggle(  function(){$('#divId').hide();},  function(){$('#divId').show();}  );    toggle方法中有两个参数,分别是要交替执行的事件.如果不传参默认是显示隐藏功能   

jquery中mouseenter和mouseleave事件示例

但是由于javascript的dom事件传播机制,不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件,不论鼠标指针离开被选元素还是任何子元素,都会触发 mouseout 事件. 所有jquery提供了mouseenter和mouseleave事件来终止事件传播,使事件只发生在选中的元素上. 只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件. 只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件. 例  代码如下 复制代码 <!DOCTYPE h

jQuery中 trigger() &amp; bind() 使用

trigger(type) 在每一个匹配的元素上触发某类事件. 返回值:jQuery 参数: type (String): 要触发的事件类型 示例: $("p").trigger("click") 1.trigger() 触发事件 这个方法是jQuery 1.3中新增的一个引起触发事件的函数. 这里的事件就如jQuery的帮助文档中的事件那一栏,如:click, mouseover, keydown 等有动作的js事件,而像show, hide这是效果不是事件. 2