jQuery自动触发事件

触发事件

       事件都是在特定条件下发生的,不同类型的事件触发的实际时机是无法预测的。开发者无法知道用户何时单击按钮提交表单,或者何时输入文本。但是在很多情况下,开发人员需要在脚本中控制事件触发的实际。

       例如,设计一个弹出广告,虽然广告画面提供了允许用户关闭的广告按钮,但是也应该设计一个条件,控制广告在显示3秒之后自动关闭。

       也许用户可以把事件处理函数定义为独立的函数窗口,以便于直接通过名称调用她,而不需要特定的事件交互。但是如果允许直接调用事件的处理函数,会简化程序的设计,更为重要的是它的操作方便。

        在传统表单设计中,表单域元素都拥有focus()和blur()方法,调用他们将会直接调用对应的focus和blur事件,是文本域获取焦点或失去焦点。

        jQuery定义在脚本的控制下自动触发事件处理函数的一系列方法,其中最常用的就是trgger()方法。用法如下:

trigger(type,[data])

       其中第一个参数的type表示事件类型,以字符串形式传递,第二个参数data是可选data可选参数,利用该参数可以向调用的事件处理函数传递额外的数据。

       看下面的案例:

$(function(){
    $("li").click(function(){
        alert($(this).text());
    });
    $("li").mouseover(function(){
        $(this).trigger("click"); 	//调用trigger()方法直接触发click事件
    }); 
})

       trigger()方法也会触发同名的浏览器事件默认行为。例如,如果用trigger()触发一个submit事件类型,则同样会导致浏览器提交表单。如果要阻止这种默认的行为,则可以在事件处理函数中设置返回值为false。

       所有触发的事件都会冒泡到DOM树顶。例如,如果在li元素上触发一个事件,它首先会在这个元素上触发,然后向上冒泡,直到触发document对象。通过event对象的target属性可以找到最开始触发这个事件的元素。用户可以用stopPropagation()方法来阻止事件冒泡,或者在事件处理函数中返回flase即可

       triggerHandler()方法对trigger()进行补充,该方法的行为表现与trigger()方法类似,用法也相同,但是存在以下3个主要区别:

       (1)triggerHandler()方法不会触发浏览器默认事件。

       (2)triggerHandler()方法只触发jQuery对象集合中第一个元素的事件处理函数。

       (3)triggerHandler()方法返回的是事件处理函数的返回值,而不是jQuery对象。如果最开始的jQuery对象集合为空,则这个方法返回undefined。

        jQuery有一些快捷触发的方法:

       blur()         dblclick()             keydown()            select()             change()            error()         keypress()         submit()         

       click()        focus()                keyup()

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端筱园

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值