首页 > 其他分享 >jQuery事件(事件处理,事件绑定与解绑)

jQuery事件(事件处理,事件绑定与解绑)

时间:2023-01-14 00:56:01浏览次数:56  
标签:jQuery 事件处理 console log function 点击 inner 解绑 event

视频

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>18_事件绑定与解绑</title>
</head>
<style type="text/css">
  * {
    margin: 0px;
  }

  .out {
    position: absolute;
    width: 200px;
    height: 200px;
    top: 20px;
    left: 10px;
    background: blue;
  }

  .inner {
    position: absolute;
    width: 100px;
    height: 100px;
    top: 50px;
    background: red;
  }

  .divBtn {
    position: absolute;
    top: 250px;
  }

</style>

<body style="height: 2000px;">

<div class="out">
  外部DIV
  <div class="inner">内部div</div>
</div>

<div class='divBtn'>
  <button id="btn1">取消绑定所有事件</button>
  <button id="btn2">取消绑定mouseover事件</button>
  <button id="btn3">测试事件坐标</button>
  <a href="http://www.baidu.com" id="test4">百度一下</a>
</div>

<!--
1. 事件绑定(2种):
  * eventName(function(){})
    绑定对应事件名的监听,	例如:$('#div').click(function(){});
  * on(eventName, funcion(){})
    通用的绑定事件监听, 例如:$('#div').on('click', function(){})
  * 优缺点:
    eventName: 编码方便, 但只能加一个监听, 且有的事件监听不支持
    on: 编码不方便, 可以添加多个监听, 且更通用
2. 事件解绑:
  * off(eventName)
3. 事件的坐标
  * event.clientX, event.clientY  相对于视口的左上角,不会随着页面滚动而移动
  * event.pageX, event.pageY  相对于页面的左上角
  * event.offsetX, event.offsetY 相对于事件元素左上角,当前事件元素
4. 事件相关处理
  * 停止事件冒泡 : event.stopPropagation()
  * 阻止事件默认行为 : event.preventDefault()
-->
<script src="js/jquery-1.10.1.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
  /*
   需求:
   1. 给.out绑定点击监听(用两种方法绑定)
   2. 给.inner绑定鼠标移入和移出的事件监听(用3种方法绑定)
   3. 点击btn1解除.inner上的所有事件监听
   4. 点击btn2解除.inner上的mouseover事件
   5. 点击btn3得到事件坐标
   6. 点击.inner区域, 外部点击监听不响应
   7. 点击链接, 如果当前时间是偶数不跳转
   */

  $(function () {
    // 1.给class为out的div的点击事件绑定监听函数,打印'out clicked'(用两种方法绑定)
    /*$('.out').click(function () {
      console.log('out click1')
    })*/
    $('.out').on('click', function () {
      console.log('out clicked2')
    })

    //2.给class为inner的div的鼠标移入和鼠标移出事件绑定监听函数
    /*$('.inner')
      .mouseenter(function () {
        console.log('进入...')
      })
      .mouseleave(function () {
        console.log('离开...')
      })*/
    $('.inner')
      .on('mouseenter', function () {
        console.log('进入...')
      })
      .on('mouseleave', function () {
        console.log('离开...')
      })
    /*$('.inner').hover(function () {
      console.log('进入...')
    }, function () {
      console.log('离开...')
    })*/

    //3. 点击btn1解除inner上的所有事件监听
    $('#btn1').click(function () {
      $('.inner').off()
    })

    //4.点击btn2解除inner上的mouseover事件
    $('#btn2').click(function () {
      $('.inner').off('mouseover')
    })

    //5. 点击btn3得到事件坐标
    $('#btn3').click(function (event) {
      console.log(event.offsetX, event.offsetY)//事件元素左上角
      console.log(event.clientX, event.clientY)//窗口左上角
      console.log(event.pageX, event.pageY)//页面左上角
    })

    //6. 点击.inner区域, 外部点击监听不响应
    $('.inner').click(function (event) {
      console.log('click inner')
      // 停止事件冒泡,冒泡从内到外 
      event.stopPropagation()
    })

    //7. 点击链接, 如果当前时间是偶数不跳转
    $('#test4').click(function (event) {
      var time = Date.now()
      alert(time)
      if(time%2===0) {
        // 阻止事件默认行为
        event.preventDefault()
      }
    })
  })

</script>
</body>
</html>

展示

标签:jQuery,事件处理,console,log,function,点击,inner,解绑,event
From: https://www.cnblogs.com/chuixulvcao/p/17051037.html

相关文章

  • jQuery(练习2添加删除表格记录,含原生对照)
    视频原生<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01//EN""http://www.w3.org/TR/html4/strict.dtd"><html><head> <metahttp-equiv="Content-Type"content="te......
  • jQuery入门
    jQuery入门1、基础语法jQuery语法是通过选取HTML元素,并对选取的元素执行某些操作。基础语法:$(selector).action()美元符号定义jQuery选择符(selector)"查询"和"查......
  • jQuery基础
    一、jQuery的产生它的作者是JohnResig,于2006年创建的一个开源项目jQuery是一个JavaScript库,它通过封装原生的JavaScript函数得到一整套定义好的方法jQu......
  • jQuery进阶
    一、jQuery动画1.1jQuery的显示和隐藏jQuery中显示方法为.show(),隐藏方法为.hide()。在无参数的时候,只是硬性的显示内容和隐藏内容在.show()和.hide()......
  • JS-jQuery1
      初始jQueryjQuery是目前最流行的JavaScript插件库,是JavaScript的封装,升级产品。设计宗旨是“WriteLess,DoMore”,即写的少,做的多。提供一种简便的JavaScript设计......
  • JS-jQuery2
      jQuery的DOM操作在JavaScript的基础之上,使用jQuery对节点做的DOM操作 原生JS添加节点  jQuery添加节点.append()在标签内部的末尾添加节点  jQuery......
  • jquery.liMarquee.js-文字滚动效果
    jquery.liMarquee.js插件:jquery多风格多功能滚动特效代码插件说明:须引入3个文件jquery.js、liMarquee的js和css文件代码:<!DOCTYPEhtml><htmllang="en"><head>......
  • 疑惑解决(2)—js使用与jQuery的src设置问题
    在单独js文件中引用Jquery之前提到过:使用js的方式  学了jquery  今天实际使用发现一个问题:如果我要使用script标签的方式引入js文件,而我又想在js中使用jQuery简......
  • jQuery对象的筛选(过滤)
    视频<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>15_筛选_过滤</title></head><body><ul><li>AAAAA</li><lititle="hello"class="box......
  • jQuery对象的筛选(查找)
    视频<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>16_筛选_查找孩子-父母-兄弟标签</title></head><body><divid="div1"class="box"title="o......