WEB开发网
开发学院网页设计JavaScript Jquery源码分析---Event分析 阅读

Jquery源码分析---Event分析

 2010-09-14 13:36:25 来源:WEB开发网   
核心提示: 除了这些,它还能对于事件的处理函数进行分类(namespace),Jquery源码分析---Event分析(10),可以在合适的时候调用事件的不同分类的的处理函数(通过jquery.event.add来注册),这个分类的处理在handle实现,同时 //event.exclusive不存在

除了这些,它还能对于事件的处理函数进行分类(namespace),可以在合适的时候调用事件的不同分类的的处理函数(通过jquery.event.add来注册)。这个分类的处理在handle实现。

  handle : function(event) {
    // 返回 undefined or false
    var val, ret, namespace, all, handlers;
    //修改了传入的参数,这里是引用。
    event = arguments[0] = jQuery.event.fix(event || window.event);
    // 命名空间处理
    namespace = event.type.split(".");
    event.type = namespace[0];
    namespace = namespace[1];
    // all = true 表明任何 handler,namespace不存在,同时
    //event.exclusive不存在或为假时,all=true.
    all = !namespace && !event.exclusive;
    // 找到元素的events中缓存的事件名的处理函数列表
    handlers = (jQuery.data(this, "events") || {})[event.type];
    for (var j in handlers) {// 每个处理函数执行
      var handler = handlers[j];
      // Filter the functions by class
      if (all || handler.type == namespace) {
       // 传入引用,为了之后删除它们
       event.handler = handler;
       event.data = handler.data;//add的时候加上的
       ret = handler.apply(this, arguments);// 执行事件处理函数
        if (val !== false)
         val = ret;// 只要有一个处理函数返回false,本函数就返回false.
       if (ret === false) {// 不执行浏览器默认的动作
         event.preventDefault();
         event.stopPropagation();
       }
      }
    }
    return val;  },

上一页  5 6 7 8 9 10 

Tags:Jquery 源码 分析

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接