DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> jQuery入門知識 >> JQuery特效代碼 >> jQuery基礎知識點(下)
jQuery基礎知識點(下)
編輯:JQuery特效代碼     

  在實際開發中,jQuery的實踐性非常強大。上一篇本人已經整理出了一部分基礎知識點,該文即是對以上的補充和擴展。

1、表單值的操作

 //獲取文本框的值
 //txt.value
   var val = $("#txt").val(); //沒有參數表示獲取值
 //設置文本框的值
 //txt.value = "123123";
   $("#txt").val("這是val設置的值");  // 有參數表示設置值

2、屬性操作

 //  設置屬性
 $("#btnSetAttr").click(function () {
    // getAttribute
           // 用法跟 css 方法完全相同
    // $("a").attr("title", "傳智播客");  //設置單個屬性
       $("a").attr({                   //設置多個屬性
           "title": "傳智播客",
           "data-abc": "自定義屬性"
        });
 });
 //  獲取屬性
 $("#btnGetAttr").click(function () {
     /*var a = $("a").attr("title");
       console.log(a);*/
     // $("a").attr("width");
 });

3、特性操作

 // 設置選中/不選中
     // input.checked = true;
     // input.checked = flase;
 $(id/class名).attr("checked",布爾值);
 
      // :checkbox      作用:獲取到所有復選框
【注意】checked、selected、disabled要使用.prop()方法。

      prop方法通常用來影響DOM元素的動態狀態,而不是改變的HTML屬性。

4、操作文本內容

 //    獲取內容
 // 文本內容:js -> innerText / textContent
    $("button:eq(0)").click(function () {
        // text() 作用:獲取或者是設置內容
        var txt = $("div").text();
        alert(txt);
    });
 //     設置文本內容
      $("button:eq(1)").click(function () {
          // 設置內容,參數表示 要設置的內容
            $("div").text("這是動態設置的內容");
             });
 //     獲取HTML內容
      $("button:eq(2)").click(function () {
           alert($("div").html());
      });

5、高度和寬度操作

 //     獲取高度
             $("#getHeight").click(function () {
             /*  var h = $("div").css("height");
                 console.log(h); // 200px 字符串   */
             /*  var h = $("div").height(); // 數值
                 h *= 2;
                 console.log(h);        */
             });
 //    設置高度
             $("#setHeight").click(function () {
              // 參數:數值類型
                 // $("div").height(500);
              // 參數:字符串
                 // $("div").height("500");
                 $("div").height("500px");
             });

6、坐標值操作

 //     獲取元素的坐標值
   $("button:eq(0)").click(function () {
      // 不傳參數表示獲取
      var offset = $("div").offset();
      console.log(offset);   // 返回值:{top: 29, left: 8}
             });
 //     設置元素的坐標值
    $("button:eq(1)").click(function () {
      // 注意:設置坐標值的時候,如果這個元素沒有定位或者定位為默認值 static
      // 那麼offset() 會把這個元素的定位設置為:position: relative;
        $("div").offset({
                    top: 200,
                     left: 400
        });
    });

7、bind事件綁定

 $("button").bind("click mouseenter", function() {});
            // 第一個參數:表示事件的名稱
            // 第二個參數:表示事件處理函數
 //    綁定多個事件
 $("button").bind({
     click: function () {}, 
     mouseenter: function () {}
 });
 //     缺點:無法給動態創建出來的元素綁定事件    

8、delegate 代理綁定事件

 // 第一個參數:表示 一個選擇器,實際要觸發事件的元素
 // 第二個參數:表示要觸發的事件名稱
 // 第三個參數:表示 事件處理函數
      $("div").delegate("p", "click", function() {
           var txt  = $(this).text();   // 獲取當前元素的內容
       });
【說明】 ①事件是什麼時候綁定的? ——頁面加載就綁定了所有的事件 ②事件是什麼時候執行的? ——單擊事件:單擊;    mouseenter:鼠標移上來的

9、on()綁定事件

   // 第一個參數:表示要綁定的事件名稱
   // 第二個參數:表示要觸發事件的元素(selector)
   // 第三個參數:表示事件處理函數
        $("div").on("click", ".cls", function () {
           var txt = $(this).text(); // 獲取當前元素的內容
        });

10、事件解綁

    1)使用un- 解綁
     $("button:eq(1)").bind("click", function () {
      // 解除第一個按鈕綁定的事件
      // 不傳參數,表示所有的事件都解綁了
      // 穿參數,表示解綁 事件的名稱
       //$("button").eq(0).unbind("click mouseenter");
      // $("button").eq(0).undelegate();
 });
 // 注意:解綁事件的時候 是解除的綁定事件的元素

      2)使用off 解綁

 $("#btnOff").on("click", function () {
   // 解除第一個按鈕的事件綁定
   // 參數:表示要解除事件的名稱
   // 如果是解除多個事件,只需要把多個事件名稱以空格分割 作為一個字符串
        $("#btn").off("click mouseenter");
   // 如果不穿參數表示把所有的事件都解除綁定
        $("div").off();
    // 解除通過 代理 的方式綁定的事件
    // 第一個參數表示:要解除事件的名稱
    // 第二個參數表示:只解除通過代理方式綁定的事件
         $("div").off("click", "**");
  
 });

11、事件觸發

    1)哪些屬於浏覽器的默認行為呢?         ① a 標簽的跳轉         ② 文本框獲得焦點
 // 觸發文本框獲得焦點事件
 // trigger() 作用:觸發事件,同時觸發了浏覽器的默認行為
    $("#txt").trigger("focus");    // 參數:表示觸發事件的類型
 // triggerHandler() 作用:只觸發事件,不觸浏覽器的發默認行為

   2)

  $(function () {
      // target 表示觸發事件的元素 並不一定是 this
       // currentTarget === this
      $("button").on("click", function (event) {
           console.log(event);
       });
       $("div").on("click", function () {
            console.log(event);
        });
  // -----------------------------------------------
        $("div").on("click", "button", function () {
            // 此時, target為觸發事件的按鈕
            // currentTarget 為綁定事件的元素
                 console.log(event);
        });
 });

12、事件對象

    1)阻止浏覽器的默認行為 e.preventDefault();
    2)阻止事件冒泡
e.stopPropagation();

13、鏈式編程原理

第一步:給出一個構造函數  第二步:創建一個新的對象 第三步:調用這個構造函數中的方法
 // 鏈式編程代碼示例
 $(“li”).parent(“ul”).parent(“div”).siblings(“div”).children(“div”).html(“內容”);
 鏈式編程原理:return this;
 通常情況下,只有設置操作才能把鏈式編程延續下去。因為獲取操作的時候,會返回獲取到的相應的值,無法返回 this。
 end(); // 結束當前鏈最近的一次過濾操作,並且返回匹配元素之前的一次狀態。

14、隱式迭代

 // 設置操作
 $(“div”).css(“color”, “red”);
 // 獲取操作
 $(“div”).css(“color”); // 返回第一個元素的值
 // 隱式迭代的意思是:在方法的內部會為匹配到的所有元素進行循環遍歷,執行相應的方法;而不用我們再進行循環,簡化我們的操作,方便我們調用。
 // 如果獲取的是多元素的值,大部分情況下返回的是第一個元素的值。

15、each方法

——有了隱式迭代,為什麼還要使用each函數遍歷? A:大部分情況下是不需要使用each方法的,因為jQuery的隱式迭代特性;如果要對每個元素做不同的處理,這時候就用到了each方法
    // each() 作用:進行遍歷
             // 參數:是一個匿名函數
             $("li").each(function (index, ele) {
                 // index: 索引號
                 // ele : 表示元素本身 但是它是一個dom對象
                 // index : 0 1 2 3 .... 9
                 var opacity = (index + 1) / 10;
                 // ele.style.opacity = opacity;
                 $(ele).css("opacity", opacity);
             });

16、多庫共存

——jQuery占用了$ 和jQuery這兩個變量。   當在同一個頁面中引用了jQuery這個js庫,並且引用的其他庫(或者其他版本的jQuery庫)中也用到了$或者jQuery這兩個變量,那麼,要保證每個庫都能正常使用,這時候就有了多庫共存的問題。
 var j = $.noConflict();
 // noConflict() 作用:讓jQuery釋放對$的控制權,讓其他庫能夠使用$符號,達到多庫共存的目的。此後,只能使用jQuery來調用jQuery提供的方法

17、插件 和 制作 

    1)插件演示 第一步:把jQuery文件引進來 第二步:引jQuery的插件     2)第三方插件
 jQuery.color.js
 // animate()自定義動畫:不支持背景的動畫效果
 // animate動畫支持的屬性列表
  3)如何創建jQuery插件

http://learn.jquery.com/plugins/basic-plugin-creation/

 // 全局jQuery函數擴展方法
 $.pluginName = function() {};
 // jQuery對象擴展方法
 $.fn. pluginName = function() {};

18、jQueryUI的基本使用

    1)使用場景:網站的管理後台     2)jQuery專指由jQuery官方維護的UI(用戶接口)方向的插件

官方API:http://api.jqueryui.com/category/all/

其他教程:jQueryUI教程

    3)基本使用

 <!--第一步:引樣式文件-->
 <link rel="stylesheet" href="plugins/jquery-ui.css"/>
 <!--第二步:引jQuery文件-->
 <script src="jquery-1.12.2.js"></script>
 <!--第三步:引jQueryUI的文件-->
 <script src="plugins/jquery-ui.js"></script>
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved