搜尋

首頁  >  問答  >  主體

javascript - 如何用jQ綁定事件,且事件要支援解綁定和傳參數?

請問,用jQ綁定一個mousemove事件,並且該事件需要傳入參數,而且得支持解綁定,這該如何實現?
用匿名函數的話,不能解綁定,非匿名的話,好像傳不了參數。

大家讲道理大家讲道理2808 天前593

全部回覆(3)我來回復

  • 漂亮男人

    漂亮男人2017-05-19 10:17:05

    給匿名函數安個內部名字就可以了。

    $(element).on('mousemove',{a:1},function handler(ev){
        console.log(ev.data);//{a:1}
        $(this).off('mousemove',handler);//“handler”变量只在函数体内有效,不会污染外部
    });

    回覆
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-19 10:17:05

    寫匿名為什麼不能解綁? ? ?

    
        $("object").bind("click",function(e){
        if('達到某一條件??') {
             $(this).unbind();
        }
    });
    

    回覆
    0
  • 高洛峰

    高洛峰2017-05-19 10:17:05

    具名函數綁定傳參及解綁定:

    function omg(event) {
        console.info(event.data.foo);
    }
    $('#omg').on('mousemove.omg', {foo: "bar"}, omg); // 绑定及传参
    $('#omg').off('.omg'); // 解绑

    匿名函數綁定傳參及解綁:

    $('#omg').on('mousemove.omg', {foo: "bar"}, function (event) {
        console.info(event.data.foo);
    }); // 绑定及传参
    $('#omg').off('.omg'); // 解绑

    回覆
    0
  • 取消回覆