learn-record

一 事件绑定的两种方式

$(\'xx\').click(function(){
  })
$(\'xx\').on(\'click\',function(){
})

二 常用事件

1.click() 点击事件

$(\'.d1\').click(function () {
       $(this).css({\'background-color\':\'black\'});
  });

2.focus() 聚焦事件

$(\'#username\').focus(function () {
       $(\'.d1\').css({\'background-color\':\'green\'});
  });

3.blur() 失去焦点事件

$(\'#username\').blur(function () {
      $(\'.d1\').css({\'background-color\':\'pink\'});
  });

4.change() 区域内容发生改变

 $(\'select\').change(function () {
      $(\'.d1\').toggleClass(\'cc\');
  });

5.hover() 是对mouseenter()事件和mouseout()事件的封装

//鼠标悬浮发生的事件,有两步是对mouseenter和mouseout的封装 里边有两个匿名函数
  // $(\'.d1\').hover(function () {
  //     $(this).css({\'background-color\':\'blue\'});
  // },
  // function(){
  //     $(this).css({\'background-color\':\'yellow\'});
  //
  // })

6.mouseover() 鼠标悬浮等同于hover事件

//mouseover 和 mouseenter事件的区别是 mouseover事件 如果标签有子标签,那么移入到
子标签时会连续触发, mouseenter事件不管有没有子标签只触发一次,表示鼠标进入这个对象
//鼠标进入
// $(\'.d2\').mouseenter(function () {
  //     console.log(\'亚太应绿了\')
  // });

  //鼠标悬浮
  $(\'.d2\').mouseover(function () {
      console.log(\'绿了\');

7. window之keydown()事件

// function函数的 e/event参数 表示的是事件 keydown/keyup keycode表示的是属性
按键值
$(window).keydown(function (e) {
       // console.log(e.keyCode);
       if (e.keyCode === 37){
           $(\'.d1\').css({\'background-color\':\'orange\'});
      } else if (e.keyCode === 39){
           $(\'.d1\').css({\'background-color\':\'green\'});
      }else {
           $(\'.d1\').css({\'background-color\':\'black\'});

      }
  });

8.window之keyup()事件

 $(window).keyup(function (e) {
       console.log(e.keyCode);
  })

9.input事件 必须用on的绑定事件

针对百度搜索引擎
//input事件监听输入内容 必须用on触发事件 propertychange 用来兼容ie浏览器的
$(\'#username\').on(\'input propertychange\',function(){
       console.log($(this).val());
  })

三 事件冒泡

//事件冒泡是指多个事件会一直往父级标签触发
$(\'#d1\').click(function () {
      alert(\'父级标签\')
  });
  // $(\'#d2\').click(function () {
  //     alert(\'子级标签\');
  //     //消除事件冒泡方式一
  //     return false;
  //
  // });
  $(\'#d2\').click(function (e) {
      alert(\'自己标签\');
      e.stopPropagation();
  })

四 事件委托 必须用on的绑定方式

//事件委托是通过事件冒泡的原理,利用父标签去捕获子标签的事件,将未来添加进来的某些子标签
自动绑定上事件
//将点击事件委托给父级了,但是$(this)还是当前的点击对象
<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>事件委托</title>
</head>
<body>
<div class="c1">
   <input type="button" value="解压小按钮">
   <button class="c2">点击就送</button>
</div>
<script src="jquery-3.5.1.js"></script>
<script>
   $(\':button\').click(
      function () {
          alert(\'周雅婷跟我笑,哈哈哈哈哈\');
          var a = $(this).clone(true);
          $(\'div\').append(a);
                    }
  );
   $(\'.c1\').on(\'click\',\'.c2\',function () {
       alert(\'臭屁在\');
       var a = document.createElement(\'button\');
       $(a).text(\'点击就送\');
       console.log($(this)) //还是我们点击的这个对象
       $(a).addClass(\'c2\');
       $(\'div\').append(a);
  })
</script>
</body>
</html>

五 页面载入

方式一 DOM对象window操作

script 统一放在最下面
window.onload = function(){}
// window.onload = function () {
  //     $(\'.c1\').click(function(){
  //         $(this).css({\'background-color\':\'blue\'});
  //     })
  // }

方式二 jquery对象操作

1.$(document).ready(function(){})
2. $(function(){})
$(function () {
      $(\'.c1\').click(function () {
          $(this).css({\'background-color\':\'black\'});
      })
  })

区别

1.window.onload()函数有覆盖现象,必须等待图片资源加载完成后才能够调用
2.jquery的这个入口函数没有函数覆盖现象,文档加载完就可以使用,建议使用次函数

 

分类:

技术点:

相关文章: