То, почему делает возвращающий false в keydown обратном вызове, не останавливает событие нажатия кнопки?

Каково различие между Flex и Flash?

способ, которым я держу его в стороне в своем уме и объясняю его другим, следующие:

Выбирают правильный инструмент для того, что Вы хотите создать.

, Если Вы хотите записать ПРИЛОЖЕНИЕ с помощью технологии Flash, используйте Flex.

, Если Вы хотите создать АНИМАЦИЮ с помощью Flash techology, используйте традиционный Flash.

Flex оптимизирован для конструкции приложения (но можно создать примитивные анимации с помощью состояний), и это компилирует в SWF.

Flash оптимизирован для конструкции анимации, но можно также создать приложения с некоторой дополнительной работой, и это компилирует в SWF.

, Как только у Вас есть свой SWF, который можно играть в Flash player, хотя Flex требует Flash 9 или выше.

В Приложении заключения

-> Flex-> анимация SWF

-> Flash-> SWF

Hope это помогает.

10
задан node_man 2 August 2018 в 11:32
поделиться

2 ответа

Надеюсь, это ответит на ваш вопрос:

<input type="button" value="Press" onkeydown="doOtherStuff(); return false;">

return false; успешно отменяет событие в браузерах, если вызывается в конце атрибута обработчика событий в HTML. Насколько я знаю, такое поведение нигде официально не указано.

Если вместо этого вы установите событие через свойство обработчика событий в элементе DOM (например, button.onkeydown = function (evt) {...} ) или с помощью addEventListener / attachEvent (например, button.addEventListener ("keydown", function (evt) {...}, false) ), а затем просто возврат false из этой функции не работает в каждом браузере, и вам нужно выполнить команды returnValue и preventDefault () из мой другой ответ. preventDefault определен в спецификации DOM 2 и реализован большинством основных современных браузеров. returnValue зависит от IE.

18
ответ дан 3 December 2019 в 16:53
поделиться

Во-первых, если вы обнаруживаете печатный символ, такой как пробел, вам лучше использовать событие keypress . Во-вторых, способ предотвратить действие по умолчанию - вызвать preventDefault () для события в браузерах, отличных от IE, и установить для свойства события returnValue значение false в IE.

var button = document.getElementById("button");
button.onkeypress = function(evt) {
   evt = evt || window.event;
   var charCode = evt.keyCode || evt.which;
   if (charCode == 32) {
       if (evt.preventDefault) {
           evt.preventDefault();
       } else {
           evt.returnValue = false;
       }
   }
};

Я не эксперт по jQuery и полагаю, что он позаботится о получении события за вас:

$("button").keypress(function(evt) {
   var charCode = evt.keyCode || evt.which;
   if (charCode == 32) {
       if (evt.preventDefault) {
           evt.preventDefault();
       } else {
           evt.returnValue = false;
       }
   }
});
6
ответ дан 3 December 2019 в 16:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: