我希望我能很好地解释这一点。
我在 else if 语句中有 mousedown 和 mouseup 函数(这允许用户在页面中拖动对象并与根据某些模式运行的指针和鼠标事件相关)。
代码:
}else if(typeof mode !== 'undefined' && mode === 'move'){
toolId = 'toolMove';
this.deselectAllElems($svgContentRef);
fdtObj.dragMode = true;
$('#formWrap').draggable( "option", "disabled", false ).addClass('dragCursor');
$svgContentRef.css({ cursor: 'url(images/cursor_drag.gif),auto' });
$('#formWrap').bind('mousedown',function() {
$svgContentRef.css({ cursor: 'url(images/cursor_dragging.gif),auto' });
});
$('#formWrap').unbind('mousedown',event);
$('#formWrap').bind('mouseup',function() {
$svgContentRef.css({ cursor: 'url(images/cursor_drag.gif),auto' });
});
$('#formWrap').unbind('mouseup',event);
}else{
$svgContentRef.css('cursor','default');
}
问题似乎是,当我单击另一种模式(当前模式之外)时,mousedown 事件仍在被触发。我怀疑未正确处理取消绑定。
非常感谢任何帮助。