转自:http://www.frontopen.com/846.html

trigger() 触发事件

触发事件就是 类似于点击click, mouseover, keydown 等有动作的js事件,简单的说就是一个动作,可能有人会问,那show, hide 是不是? 不是

为什么要用 trigger() ?

比如:你给一个按钮添加了一个click点击事件,弹出提示框,代码如下。

var div = $(“#mybutton”); //你的按钮。
div.click(function() { alert(‘你是猪啊,~让你点,你就点?’);});

上面的代码就是一个按钮的click事件。这个时候你有个非分的要求,就是希望页面刷新的时候就点一下这个按钮。如果不用trigger()你可以在后面这样写:
div.click();

如果用trigger(),你就要写成这样:效果跟上面这句是一样,就是稍微长点。
div.trigger(“click”);

然后有人说:你是猪啊·~~ 上面这个短一点,你还教我用下面这个 =,=
表急着揍我么~· 继续往下看。

你用手册里的索引搜一下click 可以看到 两条 结果 click() 和,click(fn),然后 搜一下trigger 发现只有一个 trigger(type, [data]) 。
然后你知道我的意思了吧。— trigger 可以传参数进去。
我们看看 手册里的trigger 例子:

// 一个普通的点击事件时,a和b是undefined类型 
$(“p”).click( function (event, a, b) { } );

// 如果用下面的语句触发,那么a指向”foo”,而b指向”bar”
$(“p”).trigger(“click”, [“foo”, “bar”]);

了解了吧?
区别在于:如果用click 的话,它不吃参数,用trigger的话,就能吃了。

练习一下吧:黏贴到你的页面上试试看,记得把jquery载进来。

<!DOCTYPE html>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">		
		<title>测试trigger事件</title>
		<script src="http://apps.bdimg.com/libs/jquery/1.6.4/jquery.js"></script>
	</head>
		<div id='mybutton'>点我</div>
	<body>
		<script>			
			$(function() { 
				var div = $('#mybutton'); //你的按钮。 
				
				//绑定click事件
				div.click(function(e,text) { 
				   var text = text || '你是猪啊,~让你点,你就点?'; 
				   alert(text); 
				}); 

				//触发click事件
				div.trigger('click','您好,请点击按钮');
			});		
		</script>		
	</body>
</html>

demo:

下面的代码可以显示一个”Hello World”, jQuery 代码:
$(“p”).bind(“myEvent”, function (event, message1, message2) { alert(message1 + ‘ ‘ + message2); });
$(“p”).trigger(“myEvent”, [“Hello”,”World!”]);

其实trigger()方法的意思自动"触发"被选元素的指定事件类型。



本文转载:CSDN博客