代码改变世界

jquery插件配置的触发函数执行原理

2009-07-25 20:23  Iron  阅读(295)  评论(0编辑  收藏  举报

       以前用jquery的ajax和许多插件,在调用的时候,配置了许多回调函数,类似这样的格式

$("#id").action({
  ........
  'onComplete'     :function(event,data){alert("asdf")}
 });

       用的时候觉得这样好像是理所当然。今天,下载了一个flash+jquery的多文件上传后的插件后,翻开其源码看,突然发现这种调用可不是JavaScript里面自带的,自己分析了一下,核心思想是利用JavaScript的函数对象来实现。比如下面的例子

function handler(event) {

  alert(event.data.foo);

}

$("p").bind("click", {foo: "bar"}, handler) ;

现在执行会弹出一个对话框 【bar】,

而如果改成下面的形式,照样可以实现弹出上面的对话框,通常所说的配置回调函数也就是这个原理,现在jquery的这种函数配置机制大概明白了吧~

function handler(event) {

  event.data.foo();

}

$("p").bind("click", {foo:function(){alert("bar")}}, handler) ;