转自: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()方法的意思自动"触发"被选元素的指定事件类型。