每当我改变文档的onmousemove或onmouseup属性时,例如:
document.onmousemove = myOnMouseMove;
document.onmouseup = myOnMouseUp;
它阻止我在Internet Explorer中的任何输入type ='text'或 textarea 元素中选择文本(在ie7和ie8中尝试过,在firefox中很好)。如果我删除其中的 ,它允许我再次选择文本,但我真的需要两个让我的自制拖放功能在页面的其他地方工作。
有什么方法可以保留onmouseXXX函数的默认功能并将我的功能附加到最后?或者有更好的方法来做这件事吗?
我也有同样的问题,使用textarea的onkeyup属性强制闪烁的文本光标到文本的末尾。
由于
答案 0 :(得分:1)
只要您不从事件处理函数返回false
或者弄乱用户选择,您就应该没问题。或者,您可以在事件处理程序中检查事件的目标,以过滤掉<input>
和<textarea>
s:
document.onmousedown = function(evt) {
evt = evt || window.event;
var target = evt.target || evt.srcElement;
var tagName = target.nodeName.toLowerCase();
if (tagName == "input" || tagName == "textarea") {
// Do nothing
} else {
// Do your stuff
}
};
答案 1 :(得分:0)
如果你需要拖放,这似乎是首先想要这个的原因,我可以热烈地推荐不尝试自己编码。相反,使用流行的框架,如YUI或jQuery。它们相当轻巧,并提供合理的跨浏览器兼容性。真的,重新发明这个轮子并不好玩。