账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    关于 jq的off事件,只想解除当前对象的事件不起作用
    31
    0
    1. 问题描述 :
      因为我的源码是从ajax中加载的,用绑定事件只能用事件委托 。

    这里贴出来的代码是demo。
    我要实现的效果 是针对当前的p单击两次,off事件生效。
    $(this).off('mouseleave click');//这行代码不起作用
    $(document).off('mouseleave click','p');//这行却对于所有的都p都起作用,可是只想对当前p起作用怎么办啊 。
    请大神帮忙看看。

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8"> 
    <title>菜鸟教程(runoob.com)</title>
    <script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js">
    </script>
    <script>
    $(document).ready(function(){
        var x=0;
        $(document).on('click' , 'p' , function(event){
            $(this).animate({fontSize:"+=5px"});
            x++;
            if (x>=2)
            {
                alert(this);
                $(this).off('mouseleave click');//这行代码不起作用
                $(document).off('mouseleave click','p');//这行却对于所有的都p都起作用,可是只想对当前p起作用怎么办啊            
            }
            
        });
        $(document).on('mouseleave' , 'p' ,function(event){
            alert("你离开了");
        })
    });
    </script>
    </head>
    <body>
    
    <p>1. 点击这个段落放大字体,只会放大两次。</p>
    <p>2. 点击这个段落放大字体,只会放大两次。</p>
    <p>3. 点击这个段落放大字体,只会放大两次。</p>
    </body>
    </html>

    演示 :http://sandbox.runjs.cn/show/...

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 在 jQuery 中,off 是一个用来移除事件监听器的方法。如果你想解除当前对象的事件监听器,可以使用 off 方法,如下所示:

      ```javascript // 假设你有一个对象,我们想要移除它所有的事件监听器 var myObj = { //... events: { //... click: function() { console.log('button clicked'); } } };

      // 使用 off 方法移除所有的事件监听器 myObj.events.click.off();

      // 如果你只想移除当前对象的事件监听器,你可以这样做 myObj = { //... events: { //... click: function() { console.log('button clicked'); } } };

      // 使用 off 方法移除当前对象的事件监听器 myObj.events.click.off(); ```

      在这个例子中,我们首先定义了一个对象,然后添加了一个 click 事件监听器。然后,我们使用 off 方法移除了这个事件监听器。如果你只想移除当前对象的事件监听器,你只需要调用 off 方法,而不需要添加额外的参数。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部