九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
jQuery事件機制

文章目錄

jQuery事件機制

JavaScript中已經(jīng)學習過了事件,但是jQuery對JavaScript事件進行了封裝,增加并擴展了事件處理機制。jQuery不僅提供了更加優(yōu)雅的事件處理語法,而且極大的增強了事件的處理能力。

jQuery事件發(fā)展歷程(了解)

簡單事件綁定>>bind事件綁定>>delegate事件綁定>>on事件綁定(推薦)

簡單事件注冊

click(handler)單擊事件
mouseenter(handler)鼠標進入事件
mouseleave(handler)鼠標離開事件

缺點:不能同時注冊多個事件

bind方式注冊事件

//第一個參數(shù):事件類型
//第二個參數(shù):事件處理程序
$("p").bind("click mouseenter", function(){
    //事件響應(yīng)方法
});

缺點:不支持動態(tài)事件綁定

delegate注冊委托事件

// 第一個參數(shù):selector,要綁定事件的元素
// 第二個參數(shù):事件類型
// 第三個參數(shù):事件處理函數(shù)
$(".parentBox").delegate("p", "click", function(){
    //為 .parentBox下面的所有的p標簽綁定事件
});

缺點:只能注冊委托事件,因此注冊時間需要記得方法太多了

on注冊事件

on注冊事件(重點)

jQuery1.7之后,jQuery用on統(tǒng)一了所有事件的處理方法。

最現(xiàn)代的方式,兼容zepto(移動端類似jQuery的一個庫),強烈建議使用。

on注冊簡單事件

// 表示給$(selector)綁定事件,并且由自己觸發(fā),不支持動態(tài)綁定。
$(selector).on( "click", function() {});

on注冊委托事件

// 表示給$(selector)綁定代理事件,當必須是它的內(nèi)部元素span才能觸發(fā)這個事件,支持動態(tài)綁定
$(selector).on( "click",“span”, function() {});


on注冊事件的語法:

第一個參數(shù):events,綁定事件的名稱可以是由空格分隔的多個事件(標準事件或者自定義事件)
第二個參數(shù):selector, 執(zhí)行事件的后代元素(可選),如果沒有后代元素,那么事件將有自己執(zhí)行。
第三個參數(shù):data,傳遞給處理函數(shù)的數(shù)據(jù),事件觸發(fā)的時候通過event.data來使用(不常使用)
第四個參數(shù):handler,事件處理函數(shù)

$(selector).on(events[,selector][,data],handler);

on事件注冊的兩種方式

// 這個是p自己注冊的事件(簡單事件)
$("p").on("click", function () {
  alert("呵呵");
});


$("div").on("click", "p", function () {
  alert("呵呵")
});


$("#btn").on("click", function () {
  $("<p>我是新建的p元素</p>").appendTo("div");
});

事件的執(zhí)行順序

順序:

  1. 標簽自己注冊的事件(簡單事件)
  2. 給父標簽里面的當前標簽執(zhí)行的事件 (委托事件)
  3. 給父標簽自己執(zhí)行的事件
<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style>
    div {
      height: 500px;
      width: 500px;
      background-color: pink;
    }
  </style>
</head>
<body>
<div>
  <p>111111</p>
  <p>111111</p>
  <p>111111</p>
  <p>111111</p>
</div>

<script src="jquery-1.12.4.js"></script>
<script>
  $(function () {   
    // 這個是p自己注冊的事件(簡單事件)  
    $("p").on("click", function () {
      alert("呵呵噠");   // 1 顯示
    });
  
    //給div自己執(zhí)行的
    $("div").on("click", function () {
      alert("嗚嗚嗚");   // 3 顯示
    });
    
    //給div里面的p執(zhí)行 委托事件
    $("div").on("click", "p", function () {
      alert("嘿嘿嘿")    // 2 顯示
    });
  });
</script>

</body>
</html>

事件解綁

unbind方式(不用)

$(selector).unbind(); //解綁所有的事件
$(selector).unbind("click"); //解綁指定的事件

undelegate方式(不用)

$( selector).undelegate(); //解綁所有的delegate事件
$( selector).undelegate( “click” ); //解綁所有的click事件

off方式(推薦)

// 解綁匹配元素的所有事件
$(selector).off();
// 解綁匹配元素的所有click事件
$(selector).off("click");

觸發(fā)事件

$(selector).click(); //觸發(fā) click事件
$(selector).trigger("click");

jQuery事件對象

jQuery事件對象其實就是js事件對象的一個封裝,處理了兼容性。

//screenX和screenY對應(yīng)屏幕最左上角的值
//clientX和clientY距離頁面左上角的位置(忽視滾動條)
//pageX和pageY距離頁面最頂部的左上角的位置(會計算滾動條的距離)

//event.keyCode按下的鍵盤代碼
//event.data存儲綁定事件時傳遞的附加數(shù)據(jù)

//event.stopPropagation()阻止事件冒泡行為
//event.preventDefault()阻止瀏覽器默認行為
//return false:既能阻止事件冒泡,又能阻止瀏覽器默認行為。

案例:鋼琴版導(dǎo)航(加強)

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style>
    * {
      margin: 0;
      padding: 0;
      list-style: none;
    }
    
    .nav {
      width: 900px;
      height: 60px;
      background-color: black;
      margin: 0 auto;
    }
    
    .nav li {
      width: 100px;
      height: 60px;
      /*border: 1px solid yellow;*/
      float: left;
      position: relative;
      overflow: hidden;
    }
    
    .nav a {
      position: absolute;
      width: 100%;
      height: 100%;
      font-size: 24px;
      color: blue;
      text-align: center;
      line-height: 60px;
      text-decoration: none;
      z-index: 2;
    }
    
    .nav span {
      position: absolute;
      width: 100%;
      height: 100%;
      background-color: yellow;
      top: 60px;
    }
  </style>
  <script src="../jquery-1.12.4.js"></script>
  <script>
    $(function () {
      //給li注冊鼠標進入事件,讓li下面的span top:0  播放音樂
      $(".nav li").mouseenter(function () {
        $(this).children("span").stop().animate({top: 0});
        //播放音樂
        var idx = $(this).index();
        $(".nav audio").get(idx).load();
        $(".nav audio").get(idx).play();
      }).mouseleave(function () {
        $(this).children("span").stop().animate({top: 60});
      });
      
      //節(jié)流閥  :按下的時候,觸發(fā),如果沒彈起,不讓觸發(fā)下一次
      //1. 定義一個flag
      var flag = true;
      
      
      //按下1-9這幾個數(shù)字鍵,能觸發(fā)對應(yīng)的mouseenter事件
      $(document).on("keydown", function (e) {
        if(flag) {
          flag = false;
          //獲取到按下的鍵
          var code = e.keyCode;
          if(code >= 49 && code <= 57){
            //觸發(fā)對應(yīng)的li的mouseenter事件
            $(".nav li").eq(code - 49).mouseenter();
          }
        }
       
      });
  
      $(document).on("keyup", function (e) {
        flag = true;
        
        //獲取到按下的鍵
        var code = e.keyCode;
        if(code >= 49 && code <= 57){
          //觸發(fā)對應(yīng)的li的mouseenter事件
          $(".nav li").eq(code - 49).mouseleave();
        }
      });
      
      
      //彈起的時候,觸發(fā)mouseleave事件
      
    });
  </script>
</head>
<body>
<div class="nav">
  <ul>
    <li>
      <a href="javascript:void(0);">導(dǎo)航1</a>
      <span></span>
    </li>
    <li><a href="javascript:void(0);">導(dǎo)航2</a><span></span></li>
    <li><a href="javascript:void(0);">導(dǎo)航3</a><span></span></li>
    <li><a href="javascript:void(0);">導(dǎo)航4</a><span></span></li>
    <li><a href="javascript:void(0);">導(dǎo)航5</a><span></span></li>
    <li><a href="javascript:void(0);">導(dǎo)航6</a><span></span></li>
    <li><a href="javascript:void(0);">導(dǎo)航7</a><span></span></li>
    <li><a href="javascript:void(0);">導(dǎo)航8</a><span></span></li>
    <li><a href="javascript:void(0);">導(dǎo)航9</a><span></span></li>
  </ul>
  
  <div>
    <audio src="mp3/1.ogg"></audio>
    <audio src="mp3/2.ogg"></audio>
    <audio src="mp3/3.ogg"></audio>
    <audio src="mp3/4.ogg"></audio>
    <audio src="mp3/5.ogg"></audio>
    <audio src="mp3/6.ogg"></audio>
    <audio src="mp3/7.ogg"></audio>
    <audio src="mp3/8.ogg"></audio>
    <audio src="mp3/9.ogg"></audio>
  </div>
</div>
</body>
</html>
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
jQuery選擇器的基本使用方法簡介
jquery選擇器 之 獲取父級元素、同級元素、子元素
jquery手風琴
Jquery EasyUi實戰(zhàn)教程布局篇
jQuery 常見面試題
HTML5汽車賽道飆車游戲免費源碼下載
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服