Ajax函数

$.ajax(url, type, success, error)
//url:请求的页面路径
//type:请求方式
//success:请求成功的回调,该函数有两个参数:服务器返回数据(data)和返回状态(textStatus)
//error:请求失败的回调,该函数有三个参数:XMLHttpRequest、 返回状态(textStatus),可能的捕获的错误对象(errorThrown)
//beforeSend:发送请求前的回调函数
//data:发送给服务器的数据 如果是get请求 那么将自动转换为http查询字符串附加到url?之后
//dataType:提交数据的类型,一般不需要指定,如果发送请求时附加的数据不是dataType指定的类型,则会出现错误
//async:bool,设为false时,可设置Ajax外部的变量的值。默认true,如果为true,外部变量的值将不能被修改
//示例:
$.ajax({
    url: "test.ashx",
    type: "post",
    dataType:"json",
    data: { msg: "hello" }, //服务器用request接收msg
    success: function (data, status) {       
        var simpleJson = eval("(" + data + ")");//将服务端简易Json字符转化Json对象
    }
});

函数参数

多参数

当一个函数具有多个参数时,如果我们在调用该函数时传递一大堆参数进去,而有些参数并不是必须的,代码看起来就有点混乱,此时可以使用匿名对象来解决。将参数作为匿名对象的属性,然后将匿名对象作为函数的参数即可。

参数替换
function aa(options) {
    //配置默认参数
    var param = { gender: 'man', age: 18 };
    //extend函数:merge两个参数,用传递的参数替换默认参数,没传递的参数以默认值替代
    $.extend(param, options);
    alert(param.age);
}

aa();//调用aa,不提供参数会使用默认参数
aa("woman");//提供一个参数,另一个会使用默认参数
aa("woman", 20);//提供两个参数,不再使用默认参数

深度替换

如果函数的参数(对象)的某个属性也是对象,是否进行全部合并需要为extend提供一个布尔值。

function aa(options) {
    var op = $.extend(true, { gender: "man", job: { Salary: '1000', typesWork: 'scientist', age: 30 } }, options);
    return op;
}

var test = aa({ name: 'leo', job: { Salary: '100000', typesWork: 'Programmer' } });
for (var i in test) {
    var jobObj = test[i];
    if (typeof jobObj == "object") {
        for (var z in jobObj) {
            alert(z + ":" + jobObj[z]);
        }
    }
    else {
        alert(i + ":" + test[i]);
    }
}
//参数替换的结果为:{name: 'leo' { gender: "man", job: { Salary: '100000', typesWork: 'Programmer', age: 30 }}
//如果指定第一个参数为false则结果会忽略age

插件

livequery插件

比如如果为页面上的所有div绑定了click事件,那么之后如果再动态创建一个div插入文档,这个div则不会有click事件,livequery插件能使后来动态创建的元素也能自动注册事件。

livequery(type, event, callBack)
//为元素绑定事件(包括使用Javascript动态插入的元素)
//使用livequery绑定事件
$('a').livequery('click', function (e) {
    e.preventDefault()
    alert($(this).text());
})
//之后动态创建的a元素也被自动绑定了事件
$("<a href=''>4</a>").appendTo(document.body);

JQuery UI插件

//一整套基于web UI的插件,此插件大体分为三个部分 如下:
//交互{ 拖动、置放、缩放、选择、排序  }
//微件{ 手风琴导航、自动完成、拾色器、对话框、滑块、标签、日历、放大镜、进度条、微调控制器、历史、布局、表格、菜单、工具提示、树、工具栏、上传组件  }
//效果{ 丰富的动画 无需animate方法 实现更强大的动画 }

自定义插件

为JQuery添加静态方法
$.extend(obj)
//将自定义的方法作为obj的属性,就完成了为JQuery添加静态方法
//定义一个trace函数
//示例:
function trace() {
alert('hello');
}
//将其作为JQuery的静态方法
$.extend({
trace: trace
});
//使用JQuery的静态方法
$.trace();
为JQuery原型添加方法

使用fn.extend方法可以为JQuery对象添加原型方法,原型方法属于JQuery对象,属于实例对象,所以调用时使用$的实例.方法名即可。

$.fn.extend(x)
//将自定义的方法作为obj的属性,就完成了为JQuery添加静态方法
//定义一个trace函数
//示例:
function trace(obj) {
alert('hello');
}
//将其作为JQuery的静态方法
$.extend({
    trace: trace
});
//使用JQuery的静态方法
$.trace();
为JQuery编写插件

以上两种方式都可以为JQuery增加静态或实例方法,但用起来不如自定义一个插件库来得方便。你只需要定义一个匿名函数,匿名函数需要接收一个参数,参数=$。使该函数可自运行,将JQuery作为参数传递给它,使用运行起来。接着只需要将我们编写的自定义方法全部放入该匿名函数内就可以了。

(function ($) {
    //定义一个JQuery的静态方法trace
    $.extend({
        trace: trace
    });
    //定义一个trace函数
    function trace() {
        alert('hello');
    }
})(jQuery)

$.trace();

(function ($) {
    //定义一个JQuery的原型方法trace
    $.fn.extend({
        trace: trace
    });
    //定义一个trace函数
    function trace() {
        alert('hello');
    }
})(jQuery)

$(document).trace();

Javascript - 学习总目录

Javascript - Jquery - 其它的更多相关文章

  1. JavaScript jQuery 中定义数组与操作及jquery数组操作

    首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多 ...

  2. 在线运行Javascript,Jquery,HTML,CSS代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" http://www.w3.org/TR/xht ...

  3. javascript --- jQuery --- Deferred对象

    javascript --- jQuery --- Deferred对象 javascript的函数式编程是多么引人入胜,jQuery使代码尽可能的精简,intelligent! defer - 必应 ...

  4. javascript/jquery读取和修改HTTP headers

    javascript/jquery读取和修改HTTP headers jquery修改HTTP headers jQuery Ajax可以通过headers或beforeSend修改request的H ...

  5. 大量Javascript/JQuery学习教程电子书合集

    [推荐分享]大量Javascript/JQuery学习教程电子书合集,送给有需要的人   不收藏是你的错^_^. 经证实,均可免费下载. 资源名称 资源大小   15天学会jQuery(完整版).pd ...

  6. [推荐分享]大量Javascript/JQuery学习教程电子书合集,送给有需要的人

    不收藏是你的错^_^. 经证实,均可免费下载. 资源名称 资源大小   15天学会jQuery(完整版).pdf 274.79 KB   21天学通JavaScript(第2版)-顾宁燕扫描版.pdf ...

  7. 【推荐分享】大量JavaScript/jQuery电子书籍教程pdf合集下载

    不收藏是你的错^_^. 经证实,均可免费下载. 资源名称 资源大小   15天学会jQuery(完整版).pdf 274.79 KB   21天学通JavaScript(第2版)-顾宁燕扫描版.pdf ...

  8. 使用Javascript/jQuery将javascript对象转换为json格式数据 - 海涛的CSDN博客 - 博客频道 - CSDN.NET

    body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...

  9. Javascript Jquery 中的数组定义与操作_子木玲_新浪博客

    body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...

  10. 记录下项目中常用到的JavaScript/JQuery代码二(大量实例)

    记录下项目中常用到的JavaScript/JQuery代码一(大量实例) 1.input输入框监听变化 <input type="text" style="widt ...

随机推荐

  1. java 中二维数组的定义和遍历

    定义格式 * a 第一种定义格式: * int[][] arr = new int[3][4];// arr里面包含3个数组 每个数组里面有四个元素 * 上面的代码相当于定义了一个3*4的二维数组,即 ...

  2. python: 基本知识记录

    1.图像输入输出操作 scikit-image: 图像输入输出库: 2.pyqt5库的安装: 对于python2.x, 使用pip install python-qt5即可以自动安装: 3.文件编码: ...

  3. day10-(rr)

    回顾: http:: 超文本传输协议 请求和响应 servlet: 运行在服务器端的一个java小程序,本质就是一个类 接受请求,处理逻辑,生成动态内容 编写步骤: 1.编写一个类 继承HttpSer ...

  4. Pyhton对象解释

    python的docstring提供了对每一个类.函数.方法的解释,在他们的定义下面可以有一行Python的标准字符串,该行字符串需要和下面的代码一样的缩进. docstring可以用单引号(')或者 ...

  5. java代码的编译执行过程

  6. 2017-12-14python全栈9期第一天第三节之python历史

    python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言 ...

  7. 面向对象【林老师版】:__init__定制自己独有的特征(三)

    本节内容 1.是如何产生对象 2.实例化的步骤 3.类即类型 一.是如何产生对象? __init__方法用来为对象定制对象自己独有的特征 1.stu1=LuffyStudent()调用报错 1.代码 ...

  8. 虚拟机复制问题:如何解决“无法手动启动VMware Tools安装”问题

    摘录网址:https://jingyan.baidu.com/article/3c48dd348c4504e10ae35810.html 环境描述: VMware Workstation Ubuntu ...

  9. 使用Ruby处理大型CSV文件

    处理大型文件是一种内存密集型操作,可能导致服务器耗尽RAM内存并交换到磁盘.让我们看一下使用Ruby处理CSV文件的几种方法,并测量内存消耗和速度性能. Prepare CSV data sample ...

  10. Sidekiq定时任务时间设置

    minutely(2)                               #每2分钟执行一次 hourly.minute_of_hour(27)       #每小时的27分钟执行 dail ...