jQuery事件处理

Posted yanghs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery事件处理相关的知识,希望对你有一定的参考价值。

jQuery事件处理

 

1.事件绑定(2种)

* eventName(function(){})

绑定对应事件名的监听,例如:$(‘#div‘).click(function(){});

* on(eventName,function(){})

通用的绑定事件监听,例如:$(‘#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()

    /**
             * 1.给.out绑定点击监听(用两种方法绑定)
             * 2.给.inner绑定鼠标移入和移出的事件监听(用3种方法绑定)
             * 3.点击btn1解除.inner上的所有事件监听
             * 4.点击btn2解除.inner上的mouserover事件
             * 5.点击btn3得到事件坐标
             * 6.点击.inner区域,外部点击监听不响应
             * 7.点击链接,如果当前时间是偶数不跳转
             */

            // 1.给.out绑定点击监听(用两种方法绑定)
           $(‘.out‘).click(function () {
               console.log(‘click out‘)
           })
            $(‘.out‘).on(‘click‘,function () {
                console.log(‘on click out‘)
            })

            //2.给.inner绑定鼠标移入和移出的事件监听(用3种方法绑定)
            $(‘.inner‘)
                .onmouseenter(function () {//进入
                    console.log(‘进入‘)
                })
                .onmouseleave(function () {
                    console.log(‘离开‘)
                })
            $(‘.inner‘)
                .on(‘onmouseenter‘,function () {
                    console.log(‘进入‘)
                })
                .on(‘onmouseleave‘,function () {
                    console.log(‘离开‘)
                })

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

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

            //5.点击btn3得到事件坐标
            $(‘#btn3‘).click(function (event) {//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) {
                if (Date.now()%2===0){
                    event.preventDefault()
                }
            })
        })

  

以上是关于jQuery事件处理的主要内容,如果未能解决你的问题,请参考以下文章

十条jQuery代码片段助力Web开发效率提升

使用 JQuery ajax 在 DOM 操作后附加事件

将数据从片段发送到活动,无需任何事件处理或侦听器

jQuery事件处理

[ jquery 文档处理 insertBefore(content) before(content|fn) ] 此方法用于把所有匹配的元素插入到另一个指定的元素元素集合的前面,实现外部插入(代码片段

jQuery 事件