A-A+

jQuery中 trigger() & bind() 使用

2016年01月13日 web前端设计 暂无评论 阅读 7 views 次

trigger() & bind()方法都是绑定事件了,我们对于trigger() & bind()的用法如果不是非常的清楚可以来看下面小编整理的一篇文章

trigger(type)

在每一个匹配的元素上触发某类事件。

返回值:jQuery

参数:

type (String): 要触发的事件类型

示例:

$(“p”).trigger(“click”)

1.trigger() 触发事件

这个方法是jQuery 1.3中新增的一个引起触发事件的函数。

这里的事件就如jQuery的帮助文档中的事件那一栏,如:click, mouseover, keydown 等有动作的js事件,而像show, hide这是效果不是事件。

2.为什么要用 trigger() ?

相信刚开始接触大家也都有这样的想法?

比如前台页面里有:<p id=”p1″>请点击这里!</p>

你希望加载页面时就执行这个事件给这个这p绑定了click事件(将下面的代码写在$(function(){});里面):

$(“#p1″).click(function(){
alert(“hello!”);
});

如果用trigger(),你就要写成这样:

$(“#p1″).click(function(){
alert(“hello!”);
}).trigger(click);

这样写不是更加麻烦了吗?可以这么说,但是用trigger()最大的好处就是它是可以传递参数进去的。例如:

bind() 定义和用法

bind() 方法为被选元素添加一个或多个事件处理程序,并规定事件发生时运行的函数。

将事件和函数绑定到元素

使用jquery也有近1年了,今天在看国外大牛代码突然发现一个地方没看明白,代码如下

$(window).bind('load.jcarousel', function() { windowLoaded = true; });

也许我对jQuery的了解不多吧,自己也就看过一本jQuery的入门书,然后总是在工作中学习,碰着问题了就总结一点,学习一点...嘿嘿,也许为什么动不动公司招人就是1年以上工作经验什么的,确实实战才是能让人最快速提高的。

找到jQuery API,解释如下:

1.一次可以绑定多个事件。如:

$('#foo').bind({
click: function() {
// do something on click
},
mouseenter: function() {
// do something on mouseenter
}
});

2.任何作为type参数的字符串都是合法的;如果一个字符串不是原生的JavaScript事件名,那么这个事件处理函数会绑定到一个自定义事件上。这些自定义事件绝对不会由浏览器触发,但可以通过使用.trigger()或者.triggerHandler()在其他代码中手动触发。

3.如果type参数的字符串中包含一个点(.)字符,那么这个事件就看做是有命名空间的了。这个点字符就用来分隔事件和他的命名空间。如:

$obj.bind('click.name', handler) 那么字符串中的 click 是事件类型,而字符串 name 就是命名空间
//myEvent为自定义事件名
$(“#p1″).bind(“myEvent”,function(event,str1,str2) {
alert(str1 + ‘ ‘ + str2);
});
$(“#p1″).trigger(“myEvent”,[“Hello”,”World”]);
也可以这样写:
$(“#p1″).bind(“myEvent”,function(event,str1,str2) {
alert(str1 + ‘ ‘ + str2);
}).trigger(“myEvent”,[“Hello”,”World”]);

标签:

给我留言