JQuery學習筆記- jQuery 事件與應用

1. 頁面加載時觸發ready()事件

ready()事件類似於onLoad()事件,但前者只要頁面的DOM結構加載後便觸發,而後者必須在頁面全部元素加載成功才觸發,ready()可以寫多個,按順序執行。此外,下列寫法是相等的:

$(document).ready(function(){})等價於$(function(){});


2. 使用bind()方法綁定元素的事件

bind()方法綁定元素的事件非常方便,綁定前,需要知道被綁定的元素名、綁定的事件名稱、事件中執行的函數內容就可以,它的綁定格式如下:

$(selector).bind(event,[data] function)

參數event爲事件名稱,多個事件名稱用空格隔開,function爲事件執行的函數。

        <input id="btntest" type="button" value="點擊或移出就不可用了" />
        
        <script type="text/javascript">
            $(function () {
                $("#btntest").bind("click mouseout", function () {
                    $(this).attr("disabled", "true");
                })
            });
        </script>

3. 使用hover()方法切換事件

hover()方法的功能是當鼠標移到所選元素上時,執行方法中的第一個函數,鼠標移出時,執行方法中的第二個函數,實現事件的切實效果,調用格式如下:

$(selector).hover(over,out);

over參數爲移到所選元素上觸發的函數,out參數爲移出元素時觸發的函數。

        <div>別走!你就是土豪</div>
        
        <script type="text/javascript">
            $(function () {
                $("div").hover(
                function () {
                    $(this).addClass("orange");
                },
                function () {
                    $(this).removeClass("orange")
                })
            });
        </script>

4. 使用toggle()方法綁定多個函數

toggle()方法可以在元素的click事件中綁定兩個或兩個以上的函數,同時,它還可以實現元素的隱藏與顯示的切換,綁定多個函數的調用格式如下:

$(selector).toggle(fun1(),fun2(),funN(),...)

其中,fun1,fun2就是多個函數的名稱

        <input id="btntest" type="button" value="點一下我" />
        <div>我是動態顯示的</div>
        
        <script type="text/javascript">
           $(document).ready(function(){
        $("#btntest").toggle(
                function(){$("div").hide()},
                function(){$("div").show()}
        );
    });
        </script>

5. 使用unbind()方法移除元素綁定的事件

unbind()方法可以移除元素已綁定的事件,它的調用格式如下:

$(selector).unbind(event,fun)

其中參數event表示需要移除的事件名稱,多個事件名用空格隔開,fun參數爲事件執行時調用的函數名稱。

如果沒有規定參數,unbind() 方法會刪除指定元素的所有事件處理程序。

<input id="btntest" type="button" value="移除事件" />
        <div>土豪,咱們交個朋友吧</div>
        
        <script type="text/javascript">
            $(function () {
                $("div").bind("click",
                function () {
                    $(this).removeClass("backcolor").addClass("color");
                }).bind("dblclick", function () {
                    $(this).removeClass("color").addClass("backcolor");
                })
                $("#btntest").bind("click", function () {
                     $("div").unbind("dblclick");
                    $(this).attr("disabled", "true");
                });
            });
        </script>

6. 使用one()方法綁定元素的一次性事件

one()方法可以綁定元素任何有效的事件,但這種方法綁定的事件只會觸發一次,它的調用格式如下:

$(selector).one(event,[data],fun)

參數event爲事件名稱,data爲觸發事件時攜帶的數據,fun爲觸發該事件時執行的函數。

         <div>請點擊我一下</div>
        
        <script type="text/javascript">
            $(function () {
                var intI = 0;
                $("div").one("click", function () {
                    intI++;
                    $(this).css("font-size", intI + "px");
                })
            });
        </script>

7. trigger()方法可以直接手動觸發元素指定的事件,這些事件可以是元素自帶事件,也可以是自定義的事件,總之,該事件必須能執行,它的調用格式爲:

$(selector).trigger(event)

其中event參數爲需要手動觸發的事件名稱

        <div>土豪,咱們交個朋友吧</div>
        
        <script type="text/javascript">
            $(function () {
                $("div").bind("change-color", function () {
                    $(this).addClass("color");
                });
                $("div").trigger("change-color");
            });
        </script>


8. 文本框的focus和blur事件

focus事件在元素獲取焦點時觸發,如點擊文本框時,觸發該事件;而blur事件則在元素丟失焦點時觸發,

如點擊除文本框的任何元素,都會觸發該事件。

<input id="txtest" type="text" value="" />
        <div></div>
        
        <script type="text/javascript">
            $(function () {
                $("input")
                .bind("focus", function () {
                    $("div").html("請輸入您的姓名!");
                })
                $("input").bind("blur", function () {
                    if ($(this).val().length == 0)
                        $("div").html("你的名稱不能爲空!");
                })
            });
        </script>

9. 下拉列表框的change事件

當一個元素的值發生變化時,將會觸發change事件,例如在選擇下拉列表框中的選項時,就會觸change事件。

         <select id="seltest">
            <option value="葡萄">葡萄</option>
            <option value="蘋果">蘋果</option>
            <option value="荔枝">荔枝</option>
            <option value="香焦">香焦</option>
        </select>
        
        <script type="text/javascript">
            $(function () {
                $("#seltest").bind("change", function () {
                    if ($(this).val() == "蘋果")
                        $(this).css("background-color", "red");
                    else
                        $(this).css("background-color", "green");
                })
            });
        </script>		


10. 調用live()方法綁定元素的事件

與bind()方法相同,live()方法與可以綁定元素的可執行事件,除此相同功能之外,live()方法還可以綁定動態元素,即使用代碼添加的元素事件,格式如下:

$(selector).live(event,[data],fun)

參數event爲事件名稱,data爲觸發事件時攜帶的數據,fun爲觸發該事件時執行的函數。

        <script type="text/javascript">
            $(function () {
                $("#btntest").live("click mouseout", function () {
                    $(this).attr("disabled", "true");
                });
                $("body").append("<input id='btntest' type='button' value='點擊或移出就不可用了' />");
            });
        </script>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章