Javascript 将两个操作绑定到同一事件
我想把两件事结合起来 现在我的设置是将所有需要的鼠标动作绑定到画布上,然后调用一个包装函数,使鼠标位置相对于画布。然后,包装器函数在内部函数中调用正确的操作。我还想绑定Javascript 将两个操作绑定到同一事件,javascript,jquery,html,javascript-events,Javascript,Jquery,Html,Javascript Events,我想把两件事结合起来 现在我的设置是将所有需要的鼠标动作绑定到画布上,然后调用一个包装函数,使鼠标位置相对于画布。然后,包装器函数在内部函数中调用正确的操作。我还想绑定touchstarttouchmove和touchend 这是我所拥有的一个示例结构 $('canvas').bind('mousedown mousemove mouseup', ev_canvas); function ev_canvas (e) { var pos = findPos(this); e._x
touchstart
touchmove
和touchend
这是我所拥有的一个示例结构
$('canvas').bind('mousedown mousemove mouseup', ev_canvas);
function ev_canvas (e) {
var pos = findPos(this);
e._x = e.pageX - pos.x;
e._y = e.pageY - pos.y;
var func = tool[e.type];
if (func) {
func(e);
}
}
tools.pen = function () {
tool.mousedown = function (e) {
//Stuff to do
};
tool.mousemove = function (e) {
//Stuff to do
};
tool.mouseup = function (e) {
//Stuff to do
};
}
这将调用正确的工具,然后根据操作调用鼠标(向上|向下|移动)功能
有没有一种方法可以将触摸动作绑定到这些动作,这样它就可以调用其中一个动作,而无需复制和粘贴一堆代码?我会创建一个映射表-eventName:callbackName。这是一个样本
var functionMappings = {
mousemove: "mousemove",
touchmove: "mousemove",
mousedown: "mousedown",
touchstart: "mousedown",
mouseup: "mouseup",
touchend: "mouseup"
};
var func = tool[functionMappings[e.type]];
if (func) {
func(e);
}
我将创建一个映射表-eventName:callbackName。这是一个样本
var functionMappings = {
mousemove: "mousemove",
touchmove: "mousemove",
mousedown: "mousedown",
touchstart: "mousedown",
mouseup: "mouseup",
touchend: "mouseup"
};
var func = tool[functionMappings[e.type]];
if (func) {
func(e);
}