请问,用jQ绑定一个mousemove事件,并且该事件需要传入参数,而且得支持解绑定,这该如何实现?
用匿名函数的话,不能解绑定,非匿名的话,好像传不了参数。
漂亮男人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”变量只在函数体内有效,不会污染外部
});
曾经蜡笔没有小新2017-05-19 10:17:05
写匿名为什么不能解绑? ? ?
$("object").bind("click",function(e){
if('達到某一條件??') {
$(this).unbind();
}
});
高洛峰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'); // 解绑