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设计模式初探之适配器模式

    http://blog.csdn.net/jason0539/article/details/22468457 1. 概述 将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接 ...

  2. 关于code::blocks的编译速度问题

    在一个程序写好之后,按下F9,便可以进行编译并且运行,在2018年的寒假之中,编译速度一直困扰着我,因为每次编译都需要十秒左右的时间,体验极差.而此前,编译时间一直保持在0 second. 经过我的多 ...

  3. Failed to resolve: com.android.support:appcompat-v7:28 问题解决

    apply plugin: 'com.android.application' android { compileSdkVersion buildToolsVersion "28.0.2&q ...

  4. JDBC查询MySQL中的表

    在数据库test里先创建表school,内容如下 创建接口对象:Statement stmt=con.createStatement(); //创建语句(Statement)ResultSet res ...

  5. mysqldump常用备份参数

    #!/bin/sh DUMP=/usr/bin/mysqldump OUT_DIR=/var/ftp/iips/mysqlbak LINUX_USER=root DB_NAME=yfdmbd DB_U ...

  6. day06-(mysql)

    建表: CREATE DATABASE mysqltest2; USE mysqltest2; -- 部门表 CREATE TABLE DEPT( DEPTNO INT PRIMARY KEY, -- ...

  7. M1-SaltStack&Flask-Day4

    1.virtualenv 虚拟环境 2.virtualenv env1 -p= 解释器路径 3. 进入Scripts 执行activate 激活配置 4.执行deactivate 取消激活配置 2.1 ...

  8. python自动化开发-[第十二天]-前端Css

    CSS基本语法 CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明. selector { property: value; property: value; ... property: v ...

  9. jmeter元件执行顺序及简介

    最近在学习Jmeter,在进行实操之前,先查看了官方文档.因为官方文档是英文的,为了方便以后查看,自己翻译了一部分,中间个别地方根据自己的理解简单地翻译了部分.如果翻译等有问题,欢迎指正. 一.执行顺 ...

  10. Linux 内核里的数据结构:红黑树(rb-tree)

    转自:https://www.cnblogs.com/slgkaifa/p/6780299.html 作为一种数据结构.红黑树可谓不算朴素.由于各种宣传让它过于神奇,网上搜罗了一大堆的关于红黑树的文章 ...