2013-04-17 3 views
9

У меня есть следующий код:Javascript предотвратить по умолчанию для KeyUp

$(document).on('keyup', 'p[contenteditable="true"]', function(e) { 
    if(e.which == 13) { 
     e.preventDefault(); 
     $(this).after('<p contenteditable = "true"></p>'); 
     $(this).next('p').focus(); 
    } else if((e.which == 8 || e.which == 46) && $(this).text() == "") { 
     e.preventDefault(); 
     alert("Should remove element."); 
     $(this).remove(); 
     $(this).previous('p').focus(); 
    }; 
}); 

Я хотел бы, чтобы предотвратить действие по умолчанию при нажатии клавиши. preventDefault работает для keypress, но не keyup. Есть ли способ предотвратить defualt для $(document).on('keyup')?

ответ

27

keyup пожары после действия по умолчанию.

keydown и keypress - это то, где вы можете предотвратить по умолчанию.
Если они не остановлены, то по умолчанию происходит и keyup уволен.

1

Мы можем предотвратить действие, используя следующий фрагмент кода.

e.stopPropagation(); 
     e.preventDefault(); 
     e.returnValue = false; 
     e.cancelBubble = true; 
     return false; 

keyup пожары после нажатия клавиши/кнопка. мы можем предотвратить действие по умолчанию в любом из этих событий.

Спасибо,

Шива

+0

Это не правильный ответ на заданный вопрос, иначе я бы upvote его; однако я очень ценю ваши усилия по предоставлению этой полезной информации. –

+0

Не используйте 'keyup', но используйте' keydown' и добавляйте его ответ –

Смежные вопросы