鋒利的jQuery筆記2

標(biāo)簽: 我的筆記


JQuery中的動畫

顯隱 show择镇、hide

$("div").hide(); //隱藏所有DIV元素溃蔫,相當(dāng)于sytle=”display:none”
$("div").show(); //顯示所有DIV元素

加特效 duang

$("div").hide(1000);//一秒內(nèi)隱藏

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

透明度 fadeIn扔罪、fadeOut

$("div").fadeOut(); //變透明搁嗓,直至消失(支持速度參數(shù))
$("div").fadeIn(); //變清晰

收縮 slideUp贬丛、slideDown

$("div").slideUp(); //向上收縮扇救,直至消失(支持速度參數(shù))
$("div").slideDown(); //向下

自定義動畫animate

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

  • params:樣式屬性及值的映射 {property1:"value", property2:"value"}
  • speed: 速度參數(shù)
  • callback: 動畫完成后執(zhí)行函數(shù)志珍,可選

即:用speed毫秒將elem的樣式改為params的值橙垢。

$("#myDiv").animate({left:"500px"}, 2000); //兩秒內(nèi)將元素的left屬性改為500px
$("#myDiv").animate({left:"+=500px"}, 2000); //同上,支持累加伦糯、累減
$("#myDiv").animate({top:"200px", left:"+=500px"}, 2000); //同上柜某,多重動畫,同時執(zhí)行

多個animate可以形成動作隊列敛纲。

停止動畫

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

判斷元素是否在執(zhí)行動畫

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

其它動畫

$("#myDiv").toggle(); //顯示與隱藏元素
$("#myDiv").slideToggle(); //展開與收縮元素
$("#myDiv").fadeTo(1000, 0.2); //一秒內(nèi)將元素透明度調(diào)整到20%

jQuery操作表單喂击、表格

表單應(yīng)用

單行文本框

$(":input").focus(function() { // 獲得焦點(diǎn)時
    $(this).addClass("focus");
    if ($(this).val() == this.defaultValue) {
        $(this).val("");
    }
}).blur(function() {  // 失去焦點(diǎn)時
    $(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 );
});

復(fù)選框 (實現(xiàn)全選翰绊、全不選、反選)

//全選
$(“#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>") );
});

//失去焦點(diǎn)時驗證域
$("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(){ //用戶每點(diǎn)一個鍵觸發(fā)
    $(this).triggerHandler("blur");
}).focus(function(){ //控制有焦點(diǎn)時觸發(fā)
    $(this).triggerHandler("blur");
});
$("#btnSubmit").click(function(){
    $("form :input.required").trigger("blur"); 
    //讓所有需要驗證的域失去焦點(diǎn)
    var errNum = $("form .error").length;
    if( errNum ){
        alert("有驗證字段失敗旁壮,請重新填寫");
        return false;
    }
});

表格應(yīng)用

$("tr:odd").addClass("oddTr"); //給奇數(shù)行添加oddTr樣式
$("tr:even").addClass("evenTr"); //給偶數(shù)行添加evenTr樣式

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

$("tr").click(function(){
    $(this).addClass("selectedTr") //給當(dāng)前行添加選中樣式
    .siblings().removeClass("selectedTr") //反選移除選中樣式
    .end() //結(jié)束,返回$(this)抡谐,否則則是反選的行
    .find(':radio").attr("checked",true); //在當(dāng)前行查找單選框裁奇,選中它
});

jQuery與Ajax

加載數(shù)據(jù):$(selector).load()

$(selector).load( url [,data] [,callback] )方法
url:要請求的頁面的地址
data:要發(fā)送的相關(guān)參數(shù)
callback:回調(diào)函數(shù)

1、 載入HTML文檔
$(“#myDiv”).load(“hello.html”); //向myDiv元素加載hello.html的內(nèi)容

2麦撵、 篩選載入的HTML文檔 
$(“#myDiv”).load(“hello.html .myClass”); //篩選框喳,只加載hello.html中myClass樣式的內(nèi)容

3课幕、 傳遞方式 
load()方法的傳遞方式根據(jù)參數(shù)data來自動指定。如果沒有參數(shù)傳遞五垮,則采用GET方式傳遞乍惊;反之,則自動轉(zhuǎn)換為POST方式放仗。 

$(“#myDiv”).load(“hello.html”, function(){
    //...
} );//無參數(shù)是GET
$(“#myDiv”).load(“hello.html”, {id:’123′, name:’dier’}, function(){
    //...
} ); //有參數(shù)是POST 

4润绎、 回調(diào)參數(shù)
$(“#myDiv”).load(“hello.html”, function(responseText, textStatus, XMLHttpRequest){ 
    //responseText : 請求返回的內(nèi)容
    //textStatus : 請求狀態(tài) success error notmodified timeout
    //XMLHttpRequest : Ajax對象
});

請求數(shù)據(jù):$.get(),$.post()

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

url:要請求的頁面的地址
data:要發(fā)送的相關(guān)參數(shù)
callback:回調(diào)函數(shù)
type:指定服務(wù)器返回內(nèi)容的格式 xml html script json text _default

$.get( “test.aspx”, {id:”123″, name:”dier”}, function(data,textStatus){ 
    //回調(diào)函數(shù)只有當(dāng)狀態(tài)是success才觸發(fā)
    //data : 請求返回的內(nèi)容
    //textStatus : 請求狀態(tài) success error notmodified timeout

    //1诞挨、當(dāng)data是HTML時莉撇,直接加載
    $(“#myDiv”).html(data);

    //2、當(dāng)data是XML時惶傻,可篩選 <user id=”123″ name=”dier” age=”27″ />
    var age = $(data).find(“user”).attr(“age”);

    //3棍郎、當(dāng)data是JSON時,可直接點(diǎn)出屬性來 {id:”123″, name:”dier”, age:”27″}
    var age = data.age;
});

腳本載入:$.getScript()

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

//1银室、動態(tài)加載JS腳本
$.getScript(“test.js”);
    
//2涂佃、動態(tài)加載JS腳本,并使用回調(diào)函數(shù)
$.getScript(“test.js”, function(){ 
    //do something..
});

getScript()函數(shù)可以遠(yuǎn)程載入js腳本并且執(zhí)行蜈敢。(JSONP)辜荠。

請求JSON數(shù)據(jù):$.getJSON()

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

它是設(shè)置了JSON參數(shù)的 ajax()函數(shù)的一個簡化版本。也是可以跨域使用的抓狭。

$(function(){ 

    //1伯病、動態(tài)加載JS腳本
    $.getJSON(“test.js”);

    2、動態(tài)加載JS腳本否过,并使用回調(diào)函數(shù)
    $.getJSON(“test.js”, function(data){ 
        //do something..
        $.each( data, function(index, item){
            //遍歷午笛,相當(dāng)于foreach
            //index : 索引
            //item : 當(dāng)前項內(nèi)容
            //return false; 退出循環(huán)
        });
    });
});

請求數(shù)據(jù):$.ajax(options)方法

最復(fù)雜的請求數(shù)據(jù)方法ajax。

url : 請求的地址
type : 請求的方式 GET POST 默認(rèn)為GET
timeout : 請求超時時間(單位:毫秒)
data : 請求時發(fā)送的參數(shù)(String,Object)
dataType : 預(yù)期返回的數(shù)據(jù)類型 xml html script json jsonp text
bdforeSend : 發(fā)送請求前觸發(fā)事件苗桂,如果return false則取消發(fā)送 function(XmlHttpRequest){}
complete : 請求完成后觸發(fā)事件季研,不管成功與否 function(XmlHttpRequest, textStatus){}
success : 請求完成并且成功時觸發(fā)事件 function(data, textStatus){}
error : 請求完成并且失敗時觸發(fā)事件 function(XmlHttpRequest, textStatus, errorThrown){}
global : 是否為全局請求,默認(rèn)為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整個表單中的所有域序列化成提交的參數(shù)持偏,支持自動編碼
//比如:`name=abc&age=18`
$.get( “test.aspx”, $(“#form1″).serialize(), function(data,textStatus){
    //驼卖。。鸿秆。
});

序列化數(shù)組 serializeArray()

//將所有checkbox和radio選中的內(nèi)容序列化
//比如:`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) //請求開始時觸發(fā)
ajaxStop(callback) //請求結(jié)束時觸發(fā)
ajaxComplete(callback) //請求完成時觸發(fā)
ajaxSuccess(callback) //請求成功時觸發(fā)
ajaxError(callback) //請求失敗時觸發(fā)
ajaxSend(callback) //請求發(fā)送前觸發(fā)

$(“#loading”).ajaxStart(function(){
    //當(dāng)有AJAX請求時顯示酌畜,完成時隱藏
    $(this).show();
}.ajaxStop(function(){
    $(this).hide();
});

jQuery插件

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市卿叽,隨后出現(xiàn)的幾起案子桥胞,更是在濱河造成了極大的恐慌恳守,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,919評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贩虾,死亡現(xiàn)場離奇詭異催烘,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)缎罢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評論 3 392
  • 文/潘曉璐 我一進(jìn)店門伊群,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人策精,你說我怎么就攤上這事舰始。” “怎么了咽袜?”我有些...
    開封第一講書人閱讀 163,316評論 0 353
  • 文/不壞的土叔 我叫張陵丸卷,是天一觀的道長。 經(jīng)常有香客問我询刹,道長谜嫉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,294評論 1 292
  • 正文 為了忘掉前任范抓,我火速辦了婚禮,結(jié)果婚禮上食铐,老公的妹妹穿的比我還像新娘匕垫。我一直安慰自己,他們只是感情好虐呻,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評論 6 390
  • 文/花漫 我一把揭開白布象泵。 她就那樣靜靜地躺著,像睡著了一般斟叼。 火紅的嫁衣襯著肌膚如雪偶惠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,245評論 1 299
  • 那天朗涩,我揣著相機(jī)與錄音忽孽,去河邊找鬼。 笑死谢床,一個胖子當(dāng)著我的面吹牛兄一,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播识腿,決...
    沈念sama閱讀 40,120評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼出革,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了渡讼?” 一聲冷哼從身側(cè)響起骂束,我...
    開封第一講書人閱讀 38,964評論 0 275
  • 序言:老撾萬榮一對情侶失蹤耳璧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后展箱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體旨枯,經(jīng)...
    沈念sama閱讀 45,376評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評論 2 333
  • 正文 我和宋清朗相戀三年析藕,在試婚紗的時候發(fā)現(xiàn)自己被綠了召廷。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,764評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡账胧,死狀恐怖竞慢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情治泥,我是刑警寧澤筹煮,帶...
    沈念sama閱讀 35,460評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站居夹,受9級特大地震影響败潦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜准脂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評論 3 327
  • 文/蒙蒙 一劫扒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧狸膏,春花似錦沟饥、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至砾脑,卻和暖如春幼驶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背韧衣。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評論 1 269
  • 我被黑心中介騙來泰國打工盅藻, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人畅铭。 一個月前我還...
    沈念sama閱讀 47,819評論 2 370
  • 正文 我出身青樓萧求,卻偏偏與公主長得像,于是被迫代替她去往敵國和親顶瞒。 傳聞我的和親對象是個殘疾皇子夸政,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評論 2 354

推薦閱讀更多精彩內(nèi)容