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. CodeForces 55D "Beautiful numbers"(数位DP+离散化处理)

    传送门 参考资料: [1]:CodeForces 55D Beautiful numbers(数位dp&&离散化) 我的理解: 起初,我先定义一个三维数组 dp[ i ][ j ][ ...

  2. JS事件(五)内存与性能

    1.减少代码中事件处理程序的数量,是减少内存开销,提升网页速度的有效手段 事件委托: <ul id="ul"> <li id="goSomewhere& ...

  3. Unity Shader基本例子

    Unity中,对于一个物体我们想要改变其的外观,就需要给其增加一个材质,即Matiral 一般的Matiral采用的是标准的Shader,而标准的Shader并不是最好的渲染物体表明的效果,那么我们就 ...

  4. (01背包 dp)P1049 装箱问题 洛谷

    题目描述 有一个箱子容量为VV(正整数,0≤V≤20000),同时有nn个物品(0<n≤30,每个物品有一个体积(正整数). 要求nn个物品中,任取若干个装入箱内,使箱子的剩余空间为最小. 输入 ...

  5. SQL Server索引的作用

    一.深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录.微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引.簇集索引)和非聚集索引(noncl ...

  6. C#语法糖(Csharp Syntactic sugar)

    目录 一.C#语法糖大汇总 1. 经过简化的Property2. 经过两次变异的委托写法3. 集合类的声明4. 集合类各个项的操作5. using == try finally6. 可爱的var7. ...

  7. nginx跨域的简单应用

    nginx跨域的简单应用 要求:1.浏览器访问print.qianbaihe.wang/zt 直接调转至 www.flybirdprint.com/zt,浏览器显示域名不变. server { lis ...

  8. protobuf 编译安装

    1.protobuf是google公司提出的数据存储格式,详细介绍可以参考:https://developers.google.com/protocol-buffers 2.下载最新的protobuf ...

  9. Java Web之HTML5

    终于学到Java Web这一章节了,首先来了解一下HTML5的一些新知识点吧,我直接贴出HTML5代码看一下: <!DOCTYPE html> <html lang="en ...

  10. 设计模式---状态变化模式之state状态模式(State)

    前提:状态变化模式 在组建构建过程中,某些对象的状态经常面临变化,如何对这些变化进行有效的管理?同时又维持高层模块的稳定?“状态变化”模式为这一个问题提供了一种解决方案. 典型模式 状态模式:Stat ...