如何用jQ绑定事件,且事件要支持解绑定和传参数?

请问,用jQ绑定一个mousemove事件,并且该事件需要传入参数,而且得支持解绑定,这该如何实现?
用匿名函数的话,不能解绑定,非匿名的话,好像传不了参数。

阅读 3.1k
3 个回答

给匿名函数安个内部名字就可以了。

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

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


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

具名函数绑定传参及解绑:

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'); // 解绑
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题