【问题标题】:Suppress native keyboard events in Firefox (select tag)?抑制 Firefox 中的本机键盘事件(选择标签)?
【发布时间】:2011-04-08 21:44:13
【问题描述】:

我试图抑制 Firefox 对 <select multiple="multiple"> 框的解释中的正常键盘事件,但我习惯的方法不起作用。 YUI 的stopEvent 似乎并没有真正抑制keypresskeydown(或两者)的影响。

keyPressHandler = 函数 (e) { YUE.stopEvent(e); }; YAHOO.util.Event.addListener(元素,'keypress',keyPressHandler) YAHOO.util.Event.addListener(element, 'keydown', keyPressHandler)

假设元素是一个选择框,它仍然可以使用键盘在 Firefox 中导航选择框,但它不在 Chrome 中。关于如何在 Firefox 中正确抑制键盘事件的任何想法?

我通常不会超出 YUI 的范围,但如果有其他解决方案,我愿意接受。

【问题讨论】:

  • YUE.stopEvent 实际上应该扩展为:YAHOO.util.Event.stopEvent

标签: javascript firefox dom-events yui


【解决方案1】:

试试这个:

var keyPressHandler = function(e){
    e.preventDefault();  // prevents any default actions of the browser
    e.stopPropagation(); // prevents the event mechanism from bubbling
    return false;        // If there is any condition on the return value, assure it fails
};

element.addEventListener('keydown',keyPressHandler,false);

【讨论】:

  • 我不知道 keydown 事件如何作用于表单元素,但据我所知,这是你可以用“原始”事件做的事情。
猜你喜欢
  • 1970-01-01
  • 2021-03-06
  • 1970-01-01
  • 2011-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多