1. 程式人生 > >JQuery事件與動畫

JQuery事件與動畫

linear undefined use interval fine 屬性 不同 tex 之間

一、綁定事件的方式
1、事件綁定的快捷方式 缺點:綁定的事件,無法取消
$("button").eq(0).click(function(){
    alert(1);
})
2、使用on()綁定事件 ① 使用on進行單事件綁定
                $("button:eq(0)").on("click",function(){
                    alert(1);
                });
② 使用on:一次性給同一節點添加多個事件,執行同一函數,多個事件之間空格分隔
                $("button:eq(0)"
).on("click mouseover dblclick",function(){ console.log("觸發了事件"); });
③ 使用on:一次性給同一節點添加多個事件,分別執行不同函數*/
                $("button:eq(0)").on({
                    "click":function(){
                        console.log("執行了click事件");
                    },
                    
"mouseover":function(){ console.log("執行了mouseover事件"); } });
④ 調用函數時,同時給函數傳入指定參數
                $("button:eq(0)").on("click",{name:"jredu",age:14},function(evn){
                    console.log(evn);
                    console.log(evn.data.name);
                    console.log(evn.data.age);
                });
⑤ 使用on:進行事件委派: >>> 將原本需要綁定在本元素上的事件,改為綁定到祖先節點乃至根節點上,然後委派給當前節點生效 eg:$("p").on("click",function(){}); ↓ (事件委派) $(document).on("click","p",function(){}); >>> 作用: 不使用事件委派的綁定方式,只能綁定到頁面初始化時的標簽上,當頁面新增同類型標簽,這些新增標簽,不能夠綁定上事件; 但如果使用事件委派,當頁面新增同類型標簽時,這些新增標簽也能夠綁定上已有的事件。
                $("button:eq(0)").on("click",function(){
                    $(this).after("<p>這是新增的p標簽</p>");
                });
                
                $("p").on("click",function(){
                    alert("沒有事件委派");
                });
                
                $(document).on("click","p",function(){
                    alert("這是事件委派");
                });
off()取消on事件綁定 $("p").off("click"); 取消單事件綁定 $("p").off("click mouseover dblclick"); 取消多事件綁定 $(document).off("click","p"); 取消事件委派綁定 $("p").off(); 取消所有的事件綁定 使用.one()綁定的事件,只能執行一次;
                $("button").one("click",function(){
                    alert("我只能與大家見一面");
                });
3、.trigger():自動觸發某元素的事件。 第一個參數:需要觸發的事件類型; 第二個參數:(可選)數組格式,表示傳遞給對應事件函數的參數。 >>> 傳遞進來的參數,可以在事件函數中,定義形參獲取(形參第一個必須是event事件,從第二個開始為傳遞的參數。) >>> 也可以直接在函數中,使用arguments對象數組,讀取參數。 .triggerHandler():功能同上,區別如下: ① triggerHandler 不能夠觸發瀏覽器默認的HTML事件,如submit等; trigger 可以觸發任何的事件; ② trigger 可以觸發頁面中所有匹配元素的事件; triggerHandler 只能觸發第一個匹配元素的事件; ③ trigger的返回值,返回的是調用當前函數的對象,符合JQuery的可鏈式語法; triggerHandler返回的是事件函數的返回值,如果事件函數沒有返回值,則範圍 Undefined;
                $("p").on("click",function(evn,n1,n2){
                    for (var i=1;i<arguments.length;i++) {
                        console.log(arguments[i]);
                    }
                    //alert("這是p標簽的click事件,你傳遞了參數"+n1+"和"+n2);
                });
                $("p").trigger("click",["jredu",12]);
                
                setTimeout(function(){
                    alert("時間截止,自動交卷");
                    $("form").trigger("submit");
                },5000);
二、JQuery動畫
1、.show() 讓隱藏的元素顯示。效果為:同時修改寬度、高度、opacity屬性。 ① 不傳參:直接顯示,不進行動畫; ② 參數時間毫秒數,表示多少毫秒內完成函數; ③ 傳入(時間,函數)表示動畫完成之後,執行回調函數; .hide() 讓顯示的元素隱藏,與show相反 .slideDown() 讓隱藏的元素顯示,效果為從上往下,增加高度; .slideUp() 讓顯示的元素隱藏,效果為從下往上,減小高度; .slideToggle() 讓顯示的元素隱藏,讓隱藏的元素顯示; .fadeOut() 讓顯示的元素淡出隱藏,修改透明度; .fadeIn() 讓隱藏的元素淡入顯示; .fadeToggle() 讓顯示的元素隱藏,讓隱藏的元素顯示; .fadeTo(時間,最終透明度,函數) 同fadeToggle,接收第二個參數,表示最終到達的透明度。
                $("#p").show(2000,function(){
                    $("#p").hide(2000);
                });
                setInterval(function(){
                    $("#p").show(2000,function(){
                        $("#p").hide(2000);
                    });
                },4000);
                
                $("#p").slideDown(2000,function(){
                    $("#p").slideUp(2000);
                });
                setInterval(function(){
                    $("#p").slideToggle(1000);
                },2000);
                
                $("#p").fadeIn(2000,function(){
                    $("#p").fadeOut(2000);
                });
                $("#p").fadeTo(2000,0.5,function(){});
2、自定義動畫 .animate({最終的樣式屬性,鍵值對對象}, 動畫時間, 動畫效果("linear","swing"), 動畫執行完成後的回調函數) 自定義動畫註意事項: ① 參數一的對象中,鍵必須使用駝峰命名法。{fontSize : "18px"} ② 只有數值類型的屬性能夠使用動畫,非數值類型屬性不能應用動畫。
                $("#p").animate({
                    width:"300px",
                    opacity:"0.5"
                },2000,"linear",function(){
                    alert("動畫完成了");
                });

JQuery事件與動畫