我正在尝试为触摸屏电脑设置一个网页,并注意到(用我的胖手指)onclick事件真的很难触发,因为我手指的表面区域通常会导致光标我在“点击”时移动。
我想要使用的解决方案是将onmousedown事件转发给onclick。我怎样才能做到这一点?
最好的答案是:
<input type="radio" onmousedown="this.onclick()"/>
(但当然是在工作状态下)
编辑:我的具体例子是单选按钮 - 当选中一个时,其他按钮未经检查;当浏览器免费向我提供时,我不想在自定义事件中复制此行为。
注意:编辑并收到反馈后,我想也许我可能走错了轨道......也许这不是实际选择的单选按钮上的“点击”功能:欢迎新建议......
答案 0 :(得分:1)
为什么不处理mousedown
事件?
答案 1 :(得分:1)
我知道你在问题中没有提到它,但如果你碰巧使用jQuery,那真的很容易:
$().live('mousedown', function() { this.click(); });
答案 2 :(得分:1)
好的,在您编辑后它变得更加清晰 - 您要做的是模拟用户在mousedown
事件被触发时单击控件。
两个选项:
onmouseout="this.checked = true;"
,即点击单选按钮“检查”/选择单选按钮。答案 3 :(得分:-1)
也许这对你有用
document.getElementById("yourinput").onmousedown = function() {
this.click();
}
此外,您可以将输入按钮/字段设置为更大,以便通过指针更好地访问。
答案 4 :(得分:-1)
最好有一个函数来处理这两个事件,例如
var function = foo(e) {
...
};
<input onclick="foo();" onmousedown="foo();"/>
最好还是使用不引人注目的JavaScript,例如(如果您使用的是YUI):
<input id="input-el"/>
var function = foo(e) {
...
};
var Event = YAHOO.util.Event;
Event.on('input-el', 'click', foo);
Event.on('input-el', 'mousedown', foo);