【问题标题】:jQuery KeyUp for @用于@的 jQuery KeyUp
【发布时间】:2011-10-27 16:41:50
【问题描述】:

如何使用

$('div').bind('keyup', function(e) {

   if(e.which == '@') {

   }

});

想知道如何获得@keyup 符号?

【问题讨论】:

标签: jquery click keycode keyup


【解决方案1】:

使用String.fromCharCode 方法。反向函数是 "@".charCodeAt(0)
e.which 将仅保存有关在 keypress 事件中按下的键的敏感数据。但是,当按下某个键时,此事件会触发多次。

如果您需要一种可靠的方法来在keyup 事件期间检查键的字符,请创建字符映射。 This page 会帮助你。

$('div').bind('keypress', function(e) {
   var char = String.fromCharCode(e.which);
   if(char == '@') {

   }
});

【讨论】:

  • 这不起作用,字符的键码可能因地区而异。例如,英语(英国)“@”在键 192 上,以及 '
  • @AndyE ev.whichkeypress 事件中显示64。改进的答案。
【解决方案2】:

您可以在发布此类问题之前自己尝试

JSBin做一个简单的测试:

http://jsbin.com/afapar/2/edit#javascript,html,live

然后你就会确切地知道要寻找什么。


顺便说一句,因为你需要在所有移动设备和浏览器上担心很多,我建议你使用indexOf() 或其变体,例如:

$("#txt").bind("keyup", function(evt) {
   if( $(this).val().indexOf("@") > 0 ) {
       // got it
   }
});

或者如果您需要知道它是否是最后写入的字符:

if( $(this).val().lastIndexOf("@") == $(this).val().length - 1) 
{
    // got it
}

【讨论】:

  • @balexandre - 不幸的是,在 html5 规范中使用 $.val() 不再可靠。
【解决方案3】:

这似乎工作.. http://jsfiddle.net/jNeH9/2/

$(document).bind('keyup', function(e) {
   if(e.which == 50 && e.shiftKey)
   {

   }

});

【讨论】:

  • 也许适合您的语言环境/键盘布局,但绝对不适合我的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多