2013-06-28 1 views
0

Код:ЦТС в ASCII не распознается

$(document).keydown(function(key) { 
    switch (parseInt(key.which, 10)) { 
     case 65: 
      $('img[src*="imgs/A1.png"]').remove(); 
      break; 
     case 83: 
      $('img[src*="imgs/S1.png"]').remove(); 
      break; 
     case 68: 
      $('img[src*="imgs/D1.png"]').remove(); 
      break; 
     case 70: 
      $('img[src*="imgs/F1.png"]').remove(); 
      break; 
     case 74: 
      $('img[src*="imgs/J1.png"]').remove(); 
      break; 
     case 75: 
      $('img[src*="imgs/K1.png"]').remove(); 
      break; 
     case 165: 
      $('img[src*="imgs/Ñ1.png"]').remove(); 
      break; 
     default: 
      alert("key not found"); 
      break; 
    } 
}); 

Я хочу, чтобы удалить ранее добавленные изображения, если пользователь нажимает на нужную клавишу. Он работает нормально с «нормальными» буквами, но не с «С». Согласно таблице ASCII, соответствующее число равно 165, но оно не работает (когда я нажимаю клавишу «Ñ», он предупреждает «ключ не найден»). Любые идеи? Заранее спасибо.

+0

'parseInt' не возвращает ASCII/Unicode-значение символа. Например, 'parseInt (« A », 10)' возвращает 'NaN' (а не число) вместо 65. Вы, вероятно, хотите использовать' key.which.charCodeAt (0) '. – vstm

+0

@vstm Я думаю, что на самом деле это делает. Он работает для других писем! – user2484181

ответ

1

Ваш скрипт, вероятно, работает на странице, которая была закодирована в UTF-8, а не ASCII. И в любом случае С не является допустимым символом ASCII.

ASCII - это 7-битное кодирование; вы, вероятно, думаете о расширенной кодировке ASCII.

В любом случае, почему бы вам не заменить свой «ключ не найден» предупреждение по:

alert("key not found: " + parseInt(key.which, 10)); 
+0

Вы имеете в виду, что я должен изменить этот ''? – user2484181