jquery event的简单使用
程序员文章站
2022-07-02 18:59:18
...
最近在开发树型控件时,希望使用标准的jquery的事件来处理:执行前,执行后的事件,以前这块做得较少,差了一下文档,记录如下:
发送前处理
var e = $.Event('beforeAction');
el.trigger(e);
if (e.isDefaultPrevented()) return false;
上面的代码先创建事件,然后发出事件,再判断事件有没有取消。如果在处理中,用户想要中止操作,可以在事件处理函数中执行:
e.preventDefault()
来中止处理。
发送后处理
el.trigger({type:'afterAction', message:'some message'})
这里为什么没有使用 $.Event
来创建事件对象呢?因为我们不需要处理后还可以中止,所以就不需要通过事件对象还判断是否中止了。
如何传递更多参数
有时在trigger时想要传递一些额外的参数给事件处理函数,可以:
trigger(e, data)
trigger(e, [data1, data2, ...])
第一种用法是只传递一个参数,第二种是传递多个参数,这里要使用数组。这样在定义事件处理函数中也要把对应的参数加上,如:
function handler(e, data)
function handler(e, data1, data2)
更详细的还是要看jquery的文档 http://api.jquery.com/trigger/
【更新 2013/03/02】
在使用过程中发现, trigger
发出的消息并不是我真的创建的Event对象。它会添加很多其它的属性,同时把我原始的对象放在 originalEvent
属性中。具体的可以看 http://api.jquery.com/category/events/event-object/ 中关于 OtherProperties 的描述。
转载于:https://my.oschina.net/limodou/blog/110899
上一篇: angularjs
下一篇: 强化:构建易用易扩展的工作流