JQuery

  • 问题

    让我们回顾一下之前我们已经完成的功能。

    1. 获取dom元素
    2. 添加类
    3. 删除类

    但是,还存在这样的问题。如图
    2016-04-24 6 27 15

    跟jquery对比我们就会发现目前我们的代码还有以下问题:

    1. 选择器返回的是一个对象,而jquery返回的是一个数组
    2. jquery支持链式调用,也就是$('h1').addClass('aaa').removeClass('aaa'),但是我们这样用的时候就会报错。

    类数组对象

    我们先来看第一个问题。
    我的代码之前是通过把dom元素存储在this.dom中,this还有addClass、removeClass等方法,this是一个对象。但是,jquery返回的居然是一个数组,而且


  • 问题

    我们使用jquery的时候,经常用到的是$.ajax,可以发各种异步请求。不过这次我们先来实现一个更简单的方法,$.getJSON:向服务器发起一个get请求,获取相应的json数据。

    分析

    我们先来分析一下有哪几个方面需要注意:

    1. 调用getJSON的方式是T.getJSON,而非T('selector').getJSON,所以,getJSON方法需要直接定义在T的属性上,不能定义在T的原型属性上。
    2. 需要了解http协议的基本知识 #72
    3. 如何构造和使用XHR对象
    4. promise的运用

    XMLHttpRequest

    一个简单的XHR demo

    // 创建一个请求对象
    var clie
  • 要解决的问题

    上一节 #60 我们已经知道如何使用IIFE和闭包来处理模块化的问题。现在我们来尝试实现两个功能。

    1. 获取DOM元素
    2. 添加删除类

    我们回想一下,jquery完成上面的功能大概是这样的。

    $('selector');
    $('selector').addClass('className');
    $('selector').removeClass('className');
    

    我们分析一下。

    1. $函数接受选择器作为参数,返回DOM元素。
    2. 返回的DOM元素拥有addClass和removeClass方法。

    工厂模式

    ok,上最基础的工厂模式。

    var T = function (sel
  • 项目说明

    此插件基于jquery,仓库在这儿,主要用途如下

    1. 操作光标在文本中的位置(textarea和input)
    2. 在制定位置插入文字,选中制定的文字片段
      demo

    使用方法

    1. 安装

    bower install jquery --save
    bower install jquery-cursor --save
    

    2. 引入

    <script src="jquery.js"><script>
    <script src="jquery-cursor.js"><script>
    

    3. 使用

    3.1 基本用法

    $('#textAreaId').cursor({
  • 起因

    一直存在这样一个问题:看jquery的源码,有好些地方大概明白,却不知道为什么要这样做。看《JavaScript语言精粹》之类的基础书籍,里面各种理论一套一套,到了实战的时候却要想不起来了。
    为了解决这个问题,特意开辟此系列,希望通过山寨一个jquery库来巩固基础。
    仓库地址:https://github.com/youngwind/thief

    从第一行代码开始

    ok。现在我们开始构思。
    我们要做山寨jquery。jquery有很多方法,比如$.ajax, $('#selector')等等,那我们也来定义一些方法。

    var _count = 1;
    function a(){
      //