一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

WEB前端第四十三課——jQuery框架(一)$()函數(shù)、添加事件監(jiān)聽(tīng)

 小樣樣樣樣樣樣 2021-09-18

1.前端進(jìn)階之路

  菜鳥級(jí):設(shè)計(jì)圖的還原,就是根據(jù)PSD文件寫HTML和CSS;

  入門級(jí):加頁(yè)面特效,輪播圖、菜單、選項(xiàng)卡、無(wú)縫滾動(dòng)等;

      HTML5+CSS3炫酷頁(yè)面、手機(jī)端頁(yè)面;

      Canvas游戲;

      jQuery是頁(yè)面特效的完美解決方案;

  普通級(jí):處理數(shù)據(jù),拿到后臺(tái)工程是的數(shù)據(jù),組件頁(yè)面,Ajax;

  高端級(jí):自己寫服務(wù),自己寫后臺(tái),Node.js;

  大神級(jí):前端架構(gòu)師,MVC,路由控制,后臺(tái)協(xié)作,Angular,設(shè)計(jì)模式等。

2.jQuery簡(jiǎn)介

  官網(wǎng):https:///

  口號(hào):write less, do more.

  本質(zhì):是一個(gè)快速、簡(jiǎn)潔的JavaScript框架。

     是繼Prototype之后又一個(gè)優(yōu)秀的JavaScript代碼庫(kù)。

  產(chǎn)品線:

    jQuery1.x.x:兼容IE6、7、8等低級(jí)版本瀏覽器

    jQuery2.x.x:從1代中剔除了所有兼容代碼,產(chǎn)品更輕量

    jQuery3.x.x:全面支持HTML5和CSS3

  文件引用:

    本地存放,<script src="存放地址"></script>,官方下載jQuery文件

    靜態(tài)資源公共庫(kù)(CDN),<script src="三方平臺(tái)提供的url"></script>,

      第三方類庫(kù)很多,如節(jié)跳動(dòng)(http://cdn.)、騰訊(https://libs.qq.com)等

    在HTML頭部(<head>內(nèi))添加引用鏈接。

3.jQuery基礎(chǔ)

  jQuery有非常便利的選擇元素的能力,用一個(gè)“$()”函數(shù)就可以搜尋頁(yè)面上的元素。

  操作過(guò)程:

   ?、?jQuery操作頁(yè)面元素一定是從一個(gè)“$()”開(kāi)始的;

    ② $() 函數(shù)括號(hào)內(nèi)使用引號(hào),引號(hào)中寫CSS選擇器;

    ③ 然后加上jQuery自己的方法(不能使用 js原生的方法)。

 4.$()函數(shù)

  ① $() 函數(shù)的執(zhí)行結(jié)果(返回值)是“jq”對(duì)象,

    “jq”對(duì)象是一個(gè)包含了滿足選擇器條件的元素節(jié)點(diǎn)的信息集合,可以像數(shù)組一樣使用,

    “jq”對(duì)象可以轉(zhuǎn)換成為 js對(duì)象,調(diào)用 js方法、屬性,

    $()函數(shù)可以批量獲取和操作元素節(jié)點(diǎn),

    jq 只能調(diào)用自己的屬性和方法

  代碼示例:

<body>
    <div class="divClass"></div>
    <div id="divLast"></div>
    <div class="divClass"></div>
<script>
    var $divs=$('div');     //可以批量獲取元素節(jié)點(diǎn)
    $divs.css({width:"100px",height:"100px",border:"1px solid darkorange",
    backgroundColor:"lightgreen",margin:"10px"});    //可以批量操作元素節(jié)點(diǎn),但必須使用jQuery自己的方法
    $divs[1].style.backgroundColor="lightblue";    //可以轉(zhuǎn)換成 js的元素節(jié)點(diǎn),使用 js原生方法操作
    console.log($divs);    //返回值為 jQuery對(duì)象
    console.log($divs.get(2));    //jQuery獲取對(duì)象集合中的節(jié)點(diǎn),也可以使用jq自己的 get()方法
</script>
</body>

 ?、?size()方法和 length屬性

    是 jq對(duì)象所擁有的,用于訪問(wèn) jq對(duì)象中元素節(jié)點(diǎn)的數(shù)量

    兩種方式都能夠獲取通過(guò) $()函數(shù)得到的頁(yè)面元素的個(gè)數(shù)

    語(yǔ)法:var $count = $("div").size();

       var $count = $("div").length;

  ③ jQuery全面支持CSS2.1的選擇器

    $("css選擇器"),這里所說(shuō)選擇器可以是id選擇器、類選擇器、標(biāo)簽選擇器、包含選擇器等css2.1中提到的任意選擇器組合。

    語(yǔ)法示例:$("div .span #part") .animate({font-size:"40px"}, 600);

    上述示例函數(shù)中傳入了一個(gè)字符串,而$()函數(shù)在內(nèi)部會(huì)采用正則表達(dá)式對(duì)其進(jìn)行解析,然后在頁(yè)面中搜索符合條件的所有元素節(jié)點(diǎn)。

  ④ jQuery全面支持CSS3的選擇器

    對(duì)于css3選擇器的支持,簡(jiǎn)單來(lái)說(shuō)就是支持對(duì)象屬性選擇器、關(guān)系選擇器的等在css3中提出來(lái)的選擇器,可以直接在$()中使用。

    語(yǔ)法示例:$("div[id=divBox]").css("background-color","blue");

    css3選擇器最大的問(wèn)題實(shí)際就是瀏覽器的兼容性問(wèn)題,但是使用jQuery則不存在兼容性問(wèn)題。

5.jQuery自己的偽類

  作用:從指定的元素節(jié)點(diǎn)集合中“篩選”出想要的元素。

    ① 選擇器:first,選擇指定元素集合中的第一個(gè)元素

   ?、?nbsp;選擇器:last,選擇指定元素集合中的最后一個(gè)元素

    ③ 選擇器:eq(n),選擇指定元素集合中從 0 開(kāi)始,第 n 個(gè)元素

   ?、?nbsp;選擇器:lt(n),選擇指定元素集合中從 0 開(kāi)始,第 n 個(gè)元素之前的所有元素(不包含n)

   ?、?nbsp;選擇器:gt(n),選擇指定元素集合中從 0 開(kāi)始,第 n 個(gè)元素之后的所有元素(不包含n)

   ?、?nbsp;選擇器:odd,選擇指定元素集合中從 0 開(kāi)始,所有奇數(shù)序號(hào)的元素

   ?、?nbsp;選擇器:even,選擇指定元素集合中從 0 開(kāi)始,所有偶數(shù)序號(hào)的元素

  語(yǔ)法:$("選擇器 :偽類") .方法/事件;

  其中,“eq(n)” 可以從 $()函數(shù)中提出來(lái)作為方法使用,如 $("選擇器") .eq(n) .方法/事件;,

     但其他的偽類不可以這樣使用。

  語(yǔ)法示例:

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Test</title>
    <script src="jQueryFiles/jquery-1.8.3.js"></script>
</head>
<body>
    <table border="1" style="color: orangered;text-align: center" cellspacing="0">
        <tr><td>第一列</td><td>第二列</td><td>第三列</td><td>第四列</td><td>第五列</td><td>第六列</td><td>第七列</td></tr>
        <tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
        <tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
        <tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
        <tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
        <tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
        <tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
    </table>

<script>
    $('tr').css('height','40px');
//    :first
    $('tr:first td').css('width','100px');
//    :last
    $('tr:last').css('background-color','lightpink');
//    :eq(n)
    $('tr:eq(5)').click(function () {
        $(this).css('background-color','skyblue');
        $(this).animate({'height':'60px'},'slow');    //slow\/normal\/fast(字符串),也可以使用毫秒數(shù)值。
    });
//    lt(n)/gt(n)
    var backColor='';
    backColor=$('tr:lt(5)').css('background-color');
    $('tr:lt(5)').mouseover(function () {
        $(this).css('background-color','yellowgreen');
    });
    $('tr:lt(5)').mouseout(function () {
        $(this).css('background-color',backColor);
    });
//    table奇數(shù)列和偶數(shù)列選擇
    $('tr td:nth-child(even)').click(function () {
        $(this).text('偶數(shù)列');
        $(this).css('color','gray');
    });
    $('tr td:nth-child(odd)').click(function () {
        $(this).text('奇數(shù)列');
        $(this).css('color','gold');
    });
</script>
</body>
</html>

  ps:上述“mouseover和mouseout”兩個(gè)事件可以使用“hover”替代,示例如下:

    $("選擇器").hover(overFunction(){}, outFunction(){});

6.$()函數(shù)與 jQuery()函數(shù)等價(jià)

  事實(shí)上在 jq中做出了一個(gè)聲明,這個(gè)聲明就是“$==jQuery”,即“$()和 jQuery()”兩種寫法是等價(jià)的。

  ps:$() 函數(shù)并不是 jq所獨(dú)有的,在很多其他框架(如prototype框架)中也對(duì)“$()”函數(shù)做出了聲明,

    根據(jù) js語(yǔ)法,同名函數(shù)后聲明的會(huì)覆蓋前面的,  

    因此,在工程中如果引入了多個(gè)框架,那么使用 jQuery()這種寫法是最保險(xiǎn)的。

    但是,僅對(duì)于jq框架來(lái)說(shuō),兩種寫法是等價(jià)的。

  jq中規(guī)定 $()函數(shù)的返回值是一個(gè) jq對(duì)象,其職能調(diào)用 jq設(shè)定的屬性和方法。

  jq對(duì)象轉(zhuǎn)換為 js原生對(duì)象的方式:

   ?、?$("選擇器")[n],使用中括號(hào)加索引的方式

   ?、?nbsp;$("選擇器").get(n),使用 get()方法加索引的方式

  在使用$()函數(shù)選擇元素節(jié)點(diǎn)的時(shí)候,括號(hào)中需要使用引號(hào),但是下面三種例外:

    $(window)

    $(document)

    $(this)

7.添加監(jiān)聽(tīng)事件

   jQuery對(duì)象采用打點(diǎn)調(diào)用方法,在jQuery中給元素添加監(jiān)聽(tīng)的語(yǔ)法:

    $("選擇器").事件名(function(){ });

  因?yàn)?()函數(shù)獲取的是元素集合,所以是對(duì)集合中所有元素批量添加監(jiān)聽(tīng)事件,無(wú)需使用for循環(huán)語(yǔ)句。

  常用事件名:

   ?、?nbsp;click(),單擊事件

   ?、?nbsp;dbclick(),雙擊事件

    ③ mouseenter(),鼠標(biāo)進(jìn)入

    ④ mouseleave(),鼠標(biāo)離開(kāi)

    ⑤ focus(),獲取焦點(diǎn)

   ?、?blur(),失去焦點(diǎn)

  注意,jQuery中添加事件時(shí)一律不加“on”前綴;

     同一個(gè)對(duì)象可以添加多個(gè)不同事件,互不影響;

     同一個(gè)對(duì)象可以添加多個(gè)相同事件,不會(huì)覆蓋,觸發(fā)順序與書寫順序一致。

  另外,jQuery中對(duì)象綁定事件時(shí)還允許使用“鏈?zhǔn)铰暶鳌钡姆绞?,不需要重?fù)獲取 jq對(duì)象。

     鏈?zhǔn)铰暶鲿r(shí)除最后一個(gè)綁定的函數(shù)末尾加分號(hào)表示綁定結(jié)束以外,其余函數(shù)后不寫任何內(nèi)容。

    語(yǔ)法示例:$("選擇器").事件名1(function(){ })

              .事件名2(function(){ })

              ……  ……;

8.jQuery事件監(jiān)聽(tīng)的特點(diǎn)

  jq中還提供了很對(duì)事件監(jiān)聽(tīng)的方式:

   ?、?nbsp;通過(guò)“on()”方法添加事件監(jiān)聽(tīng),通過(guò)“off()”方法取消事件監(jiān)聽(tīng);

      語(yǔ)法:$("選擇器").on("事件名", function(){ });  //添加事件監(jiān)聽(tīng)

         $("選擇器").off("事件名");    //去除事件監(jiān)聽(tīng)

   ?、?nbsp;通過(guò)“bind()”方法添加事件監(jiān)聽(tīng)

      bind()方法的優(yōu)點(diǎn)在于,它可以給一個(gè)jq對(duì)象添加多個(gè)不同的事件監(jiān)聽(tīng),事件名用“空格”隔開(kāi)即可。

        語(yǔ)法:$("選擇器").bind("事件名1 事件名2 ……", function(){ });

      另外,bind()方法還可以采用JSON形式的參數(shù)添加事件監(jiān)聽(tīng),添加多個(gè)不同事件監(jiān)聽(tīng),且擁有不同回調(diào)函數(shù)。

        語(yǔ)法:$("選擇器").bind({事件名1: function(){ }, 事件名2: function(){ }, ……});

   ?、?nbsp;通過(guò)“one()”方法添加事件監(jiān)聽(tīng)

      one()方法添加的事件監(jiān)聽(tīng)是“一次性”的,只能執(zhí)行一次。

        語(yǔ)法:$("選擇器").one("事件名", function(){ });

90.大咖分享(彈性布局):

  Flex布局詳解(一):https://zhuanlan.zhihu.com/p/163217760

  Flex布局詳解(二):https://zhuanlan.zhihu.com/p/164590960

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    精品丝袜一区二区三区性色| 国产日韩欧美国产欧美日韩| 中日韩免费一区二区三区| 香蕉久久夜色精品国产尤物| 91天堂免费在线观看 | 日韩免费成人福利在线| 国产精品欧美一区两区| 亚洲天堂精品1024| 欧美成人免费夜夜黄啪啪| 久久一区内射污污内射亚洲| 欧美加勒比一区二区三区 | 日本精品视频一二三区| 亚洲国产性感美女视频| 亚洲精品熟女国产多毛| 国内精品美女福利av在线| 国产精品推荐在线一区| 欧美精品一区二区水蜜桃| 一区二区不卡免费观看免费| 国产精品久久三级精品| 91欧美视频在线观看免费| 国产一区二区三区丝袜不卡| 国产日韩精品激情在线观看 | 久久99夜色精品噜噜亚洲av| 欧美一区二区三区视频区| 国产欧美日本在线播放| 日韩欧美好看的剧情片免费| 欧美国产日韩变态另类在线看| 国产午夜福利不卡片在线观看| 国产一区欧美一区日韩一区| 激情五月激情婷婷丁香| 中文字幕亚洲精品在线播放| 男人和女人黄 色大片| 大胆裸体写真一区二区| 不卡一区二区高清视频| 黄片美女在线免费观看| 国产精品日韩精品一区| 超薄肉色丝袜脚一区二区| 搡老熟女老女人一区二区| 久久精品欧美一区二区三不卡| 国产伦精品一一区二区三区高清版| 午夜福利激情性生活免费视频|