jQuery学习记录

jQuery选择什么版本 1.x? 2.x? 3.x?

【深入浅出jQuery】源码浅析--整体架构

【深入浅出jQuery】源码浅析2--奇技淫巧

看了这个才发现jQuery源代码不是那么晦涩

 

Jquery源码中的Javascript基础知识(一)

Jquery源码中的Javascript基础知识(二)

Jquery源码中的Javascript基础知识(三)

Jquery源码中的Javascript基础知识(四)— jQuery.fn.init方法

 

jquery插件开发规范

jQuery插件编写

jquery插件开发三种方法

Jquery遮罩插件,想罩哪就罩哪!

jQuery1.9及以上版本检测IE版本号

jQuery-tmpl基于jQuery简单实用的模板引擎

 

当您向 jQuery 传递 DOM 对象时,jQuery 会返回以 HTML DOM 对象包装的 jQuery 对象。

jQuery 函数会返回新的 jQuery 对象,其中的 ready() 是一个方法。 提示:jQuery 返回 jQuery 对象,与已传递的 DOM 对象不同。jQuery 对象拥有的属性和方法,与 DOM 对象的不同。 您不能在 jQuery 对象上使用 HTML DOM 的属性和方法。

 

一、.click , .bind , .on 的区别

1、.click 为元素绑定click事件;

2、.bind 为元素绑定特定事件(如:click),可同时绑定多个事件;绑定单个事件时(如:click),其简写同(.click);

  但不可以为还不存在的元素绑定事件;对应方法:unbind

3、.on 为元素绑定特定事件(如:click) , 可为其子元素同时绑定事件;可为不存在后来又通过JS动态加入的元素绑定事件。

  对应方法: off

二、jQuery.proxy -  绑定 this

    Function.prototype.bind = function (obj) {
        return $.proxy(this, obj);
    }

jQuery proxy详解

 三、jQuery函数的返回值

jQuery = function(selector, context) {
    // The jQuery object is actually just the init constructor 'enhanced'
    // Need init if jQuery is called (just allow error to be thrown if not included)
    return new jQuery.fn.init(selector, context);
}
init = jQuery.fn.init = function(selector, context) {}
init.prototype = jQuery.fn

看上面这三段代码,可以了解$(...)返回的是一个 jQuery.fn.init 对象,jQuery.fn.init 是一个构造函数,其原型就是 jQuery.fn。

再看看 jQuery.fn 的定义(精简代码)

jQuery.fn = jQuery.prototype = {
    jquery: version,
    constructor: jQuery,
    // The default length of a jQuery object is 0
    length: 0,

    toArray: function() {},
    each: function(callback, args) {},

    map: function(callback) {},

    slice: function() {},

    // For internal use only.
    // Behaves like an Array's method, not like a jQuery method.
    push: push,
};

可以看到这是一个类似数组的对象,所以 $(...) 得到的是一个类数组对象,而不是真正的数组,用 Array.isArray 很容易检查出来。

它作为原型,提供了 each 和 map 等方法。

如果要把它变成真正的数组,需要调用其 toArray() 方法。

jquery返回的不是该元素本身,比如:$("#postFeedback")[0],才是该元素本身

详情

posted @ 2017-11-10 11:22  风过无痕521  阅读(120)  评论(0编辑  收藏  举报