锋利的jQuery笔记2

标签: 我的笔记


JQuery中的动画

显隐 show、hide

$("div").hide(); //隐藏所有DIV元素,相当于sytle=”display:none”
$("div").show(); //显示所有DIV元素

加特效 duang

$("div").hide(1000);//一秒内隐藏

slow() 600毫秒, normal() 400毫秒, fast() 200毫秒

透明度 fadeIn、fadeOut

$("div").fadeOut(); //变透明,直至消失(支持速度参数)
$("div").fadeIn(); //变清晰

收缩 slideUp、slideDown

$("div").slideUp(); //向上收缩,直至消失(支持速度参数)
$("div").slideDown(); //向下

自定义动画animate

$(elem).animate(params, speed, callback);

  • params:样式属性及值的映射 {property1:"value", property2:"value"}
  • speed: 速度参数
  • callback: 动画完成后执行函数,可选

即:用speed毫秒将elem的样式改为params的值。

$("#myDiv").animate({left:"500px"}, 2000); //两秒内将元素的left属性改为500px
$("#myDiv").animate({left:"+=500px"}, 2000); //同上,支持累加、累减
$("#myDiv").animate({top:"200px", left:"+=500px"}, 2000); //同上,多重动画,同时执行

多个animate可以形成动作队列。

停止动画

$("#myDiv").stop([cleanQuene] [,gotoEnd]); 

判断元素是否在执行动画

$("#myDiv").is(":animate"); 

其它动画

$("#myDiv").toggle(); //显示与隐藏元素
$("#myDiv").slideToggle(); //展开与收缩元素
$("#myDiv").fadeTo(1000, 0.2); //一秒内将元素透明度调整到20%

jQuery操作表单、表格

表单应用

单行文本框

$(":input").focus(function() { // 获得焦点时
    $(this).addClass("focus");
    if ($(this).val() == this.defaultValue) {
        $(this).val("");
    }
}).blur(function() {  // 失去焦点时
    $(this).removeClass("focus");
    if ($(this).val() == '') {
        $(this).val(this.defaultValue);
    }
});

多行文本框

1、放大、缩小多行文本框的高度

var $txt = $(“#textArea”);
$(“.bigger”).click(function(){
    if( $txt.height() < 500) 
        $txt.height( $txt.height() + 50 );
});

复选框 (实现全选、全不选、反选)

//全选
$(“#btnCheckedAll”).click(function(){ 
    $(“[name=items]:checkbox”).attr(“checked”, true);
});
//全不选
$(“#btnCheckedNone”).click(function(){ 
    $(“[name=items]:checkbox”).attr(“checked”, false);
});
//反选
$(“#btnCheckedRev”).click(function(){ 
    $(“[name=items]:checkbox”).each(function(){
        $(this).attr(“checked”, !$(this).attr(“checked”));
        //this.checked = !this.checked; //这里用js更简单
    }
});
//输出值
$("#btnCheckedRev").click(function(){
    var str="你选中的是:\r\n";
    $('[name=items]:checkbox:checked').each(function(){
        str+=$(this).val()+"\r\n";
    })
    alert(str);
});

下拉框

将一个下拉列表的选中项搬至另一个下拉列表

//将选中选项搬过去
$(“#btnAdd”).click(function(){ 
    $(“#mySelect1 option:selected”).appendTo(“#mySelect2″);
});
//将全部选项搬过去
$(“#btnAddAll”).click(function(){ 
    $(“#mySelect1 option”).appendTo(“#mySelect2″);
});
//双击项搬过去
$(“#mySelect1″).dblclick(function()[ 
    $("#mySelect1 option:selected").appendTo("#mySelect2");
}

表单验证

<form>
    <div>
        <label>用户名:</label>
        <input type="text" id="txtUid" value="" />
    </div>
</form>

//往每个class有required样式的input元素后面添加*号
$("form :input.required").each(function(){ 
    $(this).parent().append( $("<span class='star'>*</span>") );
});

//失去焦点时验证域
$("form :input.required").blur(function(){ 
    if( this.value == "" ){
        $(this).parent().append( $("<span class='error'>必填字段</span>") );
    }
    else{
        $(this).parent().append( $("<span class='success'>验证正确</span>") );
        $(this).parent().find(".error").remove();
    }
}).keyup(function(){ //用户每点一个键触发
    $(this).triggerHandler("blur");
}).focus(function(){ //控制有焦点时触发
    $(this).triggerHandler("blur");
});
$("#btnSubmit").click(function(){
    $("form :input.required").trigger("blur"); 
    //让所有需要验证的域失去焦点
    var errNum = $("form .error").length;
    if( errNum ){
        alert("有验证字段失败,请重新填写");
        return false;
    }
});

表格应用

$("tr:odd").addClass("oddTr"); //给奇数行添加oddTr样式
$("tr:even").addClass("evenTr"); //给偶数行添加evenTr样式

$("tr:contains('王五')").addClass("highlightTr"); //查找包含”王五”的行,添加highlightTr样式

$("tr").click(function(){
    $(this).addClass("selectedTr") //给当前行添加选中样式
    .siblings().removeClass("selectedTr") //反选移除选中样式
    .end() //结束,返回$(this),否则则是反选的行
    .find(':radio").attr("checked",true); //在当前行查找单选框,选中它
});

jQuery与Ajax

加载数据:$(selector).load()

$(selector).load( url [,data] [,callback] )方法
url:要请求的页面的地址
data:要发送的相关参数
callback:回调函数

1、 载入HTML文档
$(“#myDiv”).load(“hello.html”); //向myDiv元素加载hello.html的内容

2、 筛选载入的HTML文档 
$(“#myDiv”).load(“hello.html .myClass”); //筛选,只加载hello.html中myClass样式的内容

3、 传递方式 
load()方法的传递方式根据参数data来自动指定。如果没有参数传递,则采用GET方式传递;反之,则自动转换为POST方式。 

$(“#myDiv”).load(“hello.html”, function(){
    //...
} );//无参数是GET
$(“#myDiv”).load(“hello.html”, {id:’123′, name:’dier’}, function(){
    //...
} ); //有参数是POST 

4、 回调参数
$(“#myDiv”).load(“hello.html”, function(responseText, textStatus, XMLHttpRequest){ 
    //responseText : 请求返回的内容
    //textStatus : 请求状态 success error notmodified timeout
    //XMLHttpRequest : Ajax对象
});

请求数据:$.get(),$.post()

$.get( url [,data] [,callback] [,type])
$.post( url [,data] [,callback] [,type])

url:要请求的页面的地址
data:要发送的相关参数
callback:回调函数
type:指定服务器返回内容的格式 xml html script json text _default

$.get( “test.aspx”, {id:”123″, name:”dier”}, function(data,textStatus){ 
    //回调函数只有当状态是success才触发
    //data : 请求返回的内容
    //textStatus : 请求状态 success error notmodified timeout

    //1、当data是HTML时,直接加载
    $(“#myDiv”).html(data);

    //2、当data是XML时,可筛选 <user id=”123″ name=”dier” age=”27″ />
    var age = $(data).find(“user”).attr(“age”);

    //3、当data是JSON时,可直接点出属性来 {id:”123″, name:”dier”, age:”27″}
    var age = data.age;
});

脚本载入:$.getScript()

$.getScript(url [,callback])方法

//1、动态加载JS脚本
$.getScript(“test.js”);
    
//2、动态加载JS脚本,并使用回调函数
$.getScript(“test.js”, function(){ 
    //do something..
});

getScript()函数可以远程载入js脚本并且执行。(JSONP)。

请求JSON数据:$.getJSON()

$.getJSON(url [,callback])方法

它是设置了JSON参数的 ajax()函数的一个简化版本。也是可以跨域使用的。

$(function(){ 

    //1、动态加载JS脚本
    $.getJSON(“test.js”);

    2、动态加载JS脚本,并使用回调函数
    $.getJSON(“test.js”, function(data){ 
        //do something..
        $.each( data, function(index, item){
            //遍历,相当于foreach
            //index : 索引
            //item : 当前项内容
            //return false; 退出循环
        });
    });
});

请求数据:$.ajax(options)方法

最复杂的请求数据方法ajax。

url : 请求的地址
type : 请求的方式 GET POST 默认为GET
timeout : 请求超时时间(单位:毫秒)
data : 请求时发送的参数(String,Object)
dataType : 预期返回的数据类型 xml html script json jsonp text
bdforeSend : 发送请求前触发事件,如果return false则取消发送 function(XmlHttpRequest){}
complete : 请求完成后触发事件,不管成功与否 function(XmlHttpRequest, textStatus){}
success : 请求完成并且成功时触发事件 function(data, textStatus){}
error : 请求完成并且失败时触发事件 function(XmlHttpRequest, textStatus, errorThrown){}
global : 是否为全局请求,默认为true,可使用AjaxStart、AjaxStop控制各种事件

$.ajax({
    url : “test.aspx”,
    type : “POST”,
    timeout : “3000″,
    data : {id:”123″, name:”dier”},
    dataType : “HTML”,
    success : function(data,textStatus){
        $(“#myDiv”).html( data );
    }
    error : function(XmlHttpRequest, textStatus, errThrown){
        $(“#myDiv”).html( “请求失败:” + errThrown );
    }
});

序列化元素

序列化字符串 serialize()

//将form1整个表单中的所有域序列化成提交的参数,支持自动编码
//比如:`name=abc&age=18`
$.get( “test.aspx”, $(“#form1″).serialize(), function(data,textStatus){
    //。。。
});

序列化数组 serializeArray()

//将所有checkbox和radio选中的内容序列化
//比如:`mycheck=1&mycheck=4&myradio=1`
var arr = $(“:checkbox, :radio”).serializeArray();

对象序列化 param()

var obj = {id:”123″, name:”dier”, age:”27″};
var kv = $.param(obj); //id=123&name=dier&age=27

JQuery中的全局Ajax事件

ajaxStart(callback) //请求开始时触发
ajaxStop(callback) //请求结束时触发
ajaxComplete(callback) //请求完成时触发
ajaxSuccess(callback) //请求成功时触发
ajaxError(callback) //请求失败时触发
ajaxSend(callback) //请求发送前触发

$(“#loading”).ajaxStart(function(){
    //当有AJAX请求时显示,完成时隐藏
    $(this).show();
}.ajaxStop(function(){
    $(this).hide();
});

jQuery插件

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容