jQuery事件

十、事件

1.事件

  • jQuery里面的事件不需要写on。
  • 下面括号中data是事件传递的数据,fn是事件的匿名函数回调。
  • 可以链式写事件(即连点)

blur([[data],fn]) 失焦事件
change([[data],fn]) 该事件仅适用于文本域(text field),以及 textarea 和 select 元素。
click([[data],fn])
dblclick([[data],fn])
focus([[data],fn]) 获焦事件
focusin([data],fn) 当元素获得焦点时,触发 focusin 事件。
focusout([data],fn) 当元素失去焦点时触发 focusout 事件。
keydown([[data],fn])
keypress([[data],fn])
keyup([[data],fn])
mousedown([[data],fn])
mouseenter([[data],fn])
mouseleave([[data],fn])
mousemove([[data],fn])
mouseout([[data],fn])
mouseover([[data],fn])
mouseup([[data],fn])
resize([[data],fn]) 浏览器窗口变化事件
scroll([[data],fn])
select([[data],fn])
submit([[data],fn]) 提交表单时,会发生 submit 事件。该事件只适用于表单元素。

<button id="btn">按钮</button>
<input type="text" class="ipt" value="123"/>
    $('#btn').click(10,function(e) {
        console.log(e.data);
    }).mouseenter(function() {
        console.log('进入');
    }).mouseout(function () {
        console.log('离开');
    }).mousemove(function () {
        console.log('移动');
    });

    $('.ipt').focus(function() {
       $(this).css('color', 'red');
    }).blur(function () {
        $(this).css('color', 'blue');
    });

    $('.ipt').focusin(function () {
       console.log(1);
    }).focus(function () {
        console.log(2);
    }).focusout(function () {
        console.log(3);
    }).blur(function () {
        console.log(4);
    }); //输出结果是1234
   /*
    * 鼠标滚轮事件
    * 火狐事件名称为DOMMouseScroll
    * */
    $(document).on('mousewheel', function (e) {
       console.log(e);
    });//上滑负,下滑正

    $(document).on('DOMMouseScroll', function (e) {
        console.log(e);
    });
    /*document.addEventListener('mousewheel', function (e) {
        console.log(e);
    });*/

 

2.事件切换

hover([over,]out)鼠标悬停事件,鼠标移到指定元素中,则触发第一个函数,移出则触发第二个函数

   /*
    * 事件切换
    * */
    $('.box').hover(function(){
        console.log('进入');
    },function() {
        console.log('离开');
    });

3.事件处理

on(eve,[sel],[data],fn)1.7+ 在选择元素上绑定一个或多个事件的事件处理函数。
off(eve,[sel],[fn])1.7+ 移除
one(type,[data],fn) 一次性事件
trigger(type,[data]) 自动触发事件

   /*
    * 事件处理
    * */

    //事件绑定,传递数据
    $('.box').on('click',10, function(e) {
       console.log(e.data);
    });

    //on可以进行事件委托
    $('.menu').on('click','li', function () {
       console.log('点击');
    });

    //一次绑定多个事件
    $('.box').on('mouseenter mousemove', function(e) {
       if(e.type == 'mouseenter') {
           console.log("进入");
       }else {
           console.log("移动");
       }
    });

    //移除事件绑定
    //$('.box').off();
    //移除指定事件
    $('.box').off('click');

    //one 绑定一次性事件
    /*$('.red').one('click', function () {
       console.log("点击");
    });*/

    //trigger 指定触发事件
    /*$('.red').click(function () {
        console.log('点击');
    }).trigger('click');*/
    //trigger 传递数据
    /*$('.red').click(20, function (e, a, b, c) {
        console.log('点击', e.data, a, b, c);
    }).trigger('click', [1, 2, 3]);*/

    //自定义事件
    $('.red').on('myevent', function (e) {
        console.log(e);
    }).trigger('myevent');

十一、事件对象

eve.currentTarget 当前点击的目标元素
eve.data 事件传递的数据
eve.delegateTarget1.7+ 
eve.isDefaultPrevented() 返回值true/false 是否使用过preventDefault
eve.isPropagationStopped() 返回值true/false 是否使用过stopPropagation
eve.namespace
eve.pageX
eve.pageY
eve.preventDefault() 阻止事件的默认行为
eve.relatedTarget
eve.result
eve.stopPropagation() 阻止事件冒泡
eve.target 执行事件的目标元素
eve.timeStamp 
eve.type 
eve.which 

    $('.btn').click(function() {
       return false;
    });
    $('.btn').click(function (e) {
        console.log(e);
        //e.data 事件传递参数 数据在上面
        //e.currentTarget 等价js 中的e.target 当前触发的目标元素
        //console.log(e.delegateTarget);//等价 e.currentTarget
        //e.preventDefault();  //阻止事件默认行为
        //e.stopPropagation(); //阻止事件冒泡
        //e.preventDefault();
        //下面这个是检测是否调用e.preventDefault() 返回值true/false
        //console.log(e.isDefaultPrevented());
        //检测是否调用e.stopPropagation()  true false
        //e.isPropagationStopped();
        //console.log(e.result); //事件执行函数 显示之前的返回值
        //console.log(e.timeStamp); //触发事件的时间 单位为ms
        //e.type //触发的事件类型
        //用户知道按键的键值 鼠标事件全是1, 键盘事件是对应的键值
        //e.which
    });
     div.box {
            width: 200px;
            height: 200px;
            border: 1px solid red;
        }

    <div class="box">
        <button class="box">按钮</button>
    </div>

    var count = 0;
    $('.box').click(function (e) {
        count++;
        console.log(count);

        //处理事件冒泡
        //return false;
        //e.stopPropagation();
        //e.originalEvent.cancelBubble = true;

        //处理事件默认行为
        e.preventDefault();
    })

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值