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. Failed to resolve: com.android.support:appcompat-v7:28 问题解决

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

  2. delphi中Bitmap位图与base64字符串相互转换

    uses EncdDecd; ///将Bitmap位图转化为base64字符串 function BitmapToString(img:TBitmap):string ; var ms:TMemory ...

  3. 位掩码(BitMask)的介绍与使用

    一.前言 位运算在我们实际开发中用得很少,主要原因还是它对于我们而言不好读.不好懂.也不好计算,如果不经常实践,很容易就生疏了.但实际上,位运算是一种很好的运算思想,它的优点自然是计算快,代码更少. ...

  4. Linux中sed的用法实践

    Linux中sed的用法实践 参考资料:https://www.cnblogs.com/emanlee/archive/2013/09/07/3307642.html http://www.fn139 ...

  5. go 学习资源和GitHub库

    go httprouter 源码包 https://github.com/julienschmidt/httprouter 用例 https://github.com/gsingharoy/httpr ...

  6. jms和activemq

    一.什么是JMS JMS是java message service的缩写即java消息服务,是java定义的消息中间件(MOM)的技术规范(类似玉JDBC).用于程序之间的异步通信,如果两个应用程序需 ...

  7. jdk7 并行计算框架Fork/Join

    故名思义,拆分fork+合并join.jdk1.7整合Fork/Join,性能上有大大提升. 思想:充分利用多核CPU把计算拆分成多个子任务,并行计算,提高CPU利用率大大减少运算时间.有点像,Map ...

  8. HDFS-JavaAPI

    一.pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="h ...

  9. keytool导入导出多条目对比【原】

    步骤一:生成orange.keystore和banana.keystore keytool -genkey -alias orange -keyalg RSA -keysize 1024 -keypa ...

  10. 阅读:重新介绍 JavaScript(JS教程)

    这篇文章是记录自己阅读重新介绍 JavaScript(JS 教程)的记录和个人体会 在线调试代码工具:https://codepen.io/pen 引言 分歧根源:名字Javascript和Java有 ...