Heim > Fragen und Antworten > Hauptteil
Entschuldigung, wie kann ich jQ verwenden, um ein Mousemove-Ereignis zu binden, und das Ereignis muss Parameter übergeben und das Aufheben der Bindung unterstützen?
Wenn Sie eine anonyme Funktion verwenden, können Sie die Bindung nicht aufheben. Wenn sie nicht anonym ist, können Sie anscheinend keine Parameter übergeben.
漂亮男人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'); // 解绑