jquery中trigger有什么用

JavaScript021

jquery中trigger有什么用,第1张

在前端页面开发中,我们有时候希望能自定执行一些人性化操作,比如鼠标不用点击自动就能点击等操作,利用传统的js语言需要编写复杂的代码才能实现此功能,这时候我们使用jquery的trigger()方法就能轻松实现.

trigger方法的功能是在所选择的元素上触发指定类型的事件,其调用的语法格式为:trigger(type,[data]),其中参数type为触发事件的类型,参数data为可选项,表示在触发事件时,传递给函数的附件参数.下面来举例说明下.

页面中创建一个文本框,并给文本一个默认值,当该页面加载时,自动获取文本框的值,显示在页面中,同时文本框处于选中状态 .实现代码如下:

[javascript] view plain copy

$(function(){

var oTxt=$("input")//获取文本框

oTxt.trigger("select")//自动选中文本框

oTxt.bind("btn_click",function(){

//自定义事件

var txt=$(this).val()//获取自身内容

$("#div").html(txt)//显示在页面中

})

oTxt.trigger("btn_click")//自动触发自定义事件

})

方法:

可以使用jQuery的trigger() 方法来响应事件。

定义和用法:

trigger() 方法触发被选元素的指定事件类型。

语法:

$(selector).trigger(event,[param1,param2,...])

参数描述:

event    必需。规定指定元素要触发的事件。可以使自定义事件(使用 bind() 函数来附加),或者任何标准事件。   

[param1,param2,...]    可选。传递到事件处理程序的额外参数。额外的参数对自定义事件特别有用。

实例:

触发 select元素的change事件:

$("button").click(function(){

$("select").trigger("change")

})

trigger( event, [data] )

在每一个匹配的元素上触发某类事件。这个函数也会导致浏览器同名的默认行为的执行。比如,如果用trigger()触发一个’submit’,则同样会导致浏览器提交表单。如果要阻止这种默认行为,应返回false。

也可以触发由bind()注册的自定义事件

  $("p").click( function (event, a, b) {

// 一个普通的点击事件时,a和b是undefined类型

// 如果用下面的语句触发,那么a指向"foo",而b指向"bar"

} ).trigger("click", ["foo", "bar"])

triggerHandler( event, [data] )

这个特别的方法将会触发指定的事件类型上所有绑定的处理函数。但不会执行浏览器默认动作.

如果对一个focus事件执行了 .triggerHandler() ,浏览器默认动作将不会被触发,只会触发绑定的动作: 

<BUTTON id=old type=submit>.trigger("focus")</BUTTON>

<BUTTON id=new type=submit>.triggerHandler("focus")</BUTTON><BR><BR>

<INPUT value="To Be Focused" type=text>

<SCRIPT>

$(function(){

$("#old").click(function(){

$("input").trigger("focus")

})

$("#new").click(function(){

$("input").triggerHandler("focus")

})

$("input").focus(function(){

$("<span>Focused!</span>").appendTo("body").fadeOut(1000)

})

})

</SCRIPT>