trigger() 触发事件就是类似于点击 click mouseover keydown 等有动作的 JavaScript 事件,简单的说就是一个动作,可能有人会问,那 show hide 是不是可以触发,答案是不能。
你给一个按钮添加了一个 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 例子:
- $("p").click( function (event, a, b) {
- // 一个普通的点击事件时,a和b是undefined类型
- // 如果用下面的语句触发,那么a指向"foo",而b指向"bar"
- } ).trigger("click", ["foo", "bar"]);
如果用 click 的话,它不能带参数,用 trigger 的话,就能带参数。
- $(function() {
- var div = $("#mybutton"); //你的按钮。
- div.click(function(e,text) {
- var text = text || '你是猪啊,~让你点,你就点?';
- alert(text);
- });
- div.trigger("click","您好,请点击按钮");
- });
下面的代码可以显示一个 Hello World 的 jQuery 代码:
- $("p").bind("myEvent", function (event, message1, message2) {
- alert(message1 + ' ' + message2);
- });
- $("p").trigger("myEvent", ["Hello","World!"]);