2013-04-17 15 views
9

Mam następujący kod:javascript zapobiec domyślne dla 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(); 
    }; 
}); 

chciałbym zapobiec domyślną akcję, gdy klawisz jest wciśnięty. preventDefault działa pod numerem keypress, ale nie pod numerem keyup. Czy istnieje sposób, aby zapobiec defualt dla $(document).on('keyup')?

Odpowiedz

27

Numer keyup pożary po domyślnej akcji.

keydown i keypress to miejsca, w których można zapobiec ustawieniu domyślnemu.
Jeśli nie zostaną zatrzymane, domyślnie się stanie i zostanie zwolniony keyup.

1

Możemy zapobiec akcji, używając poniższego fragmentu kodu.

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

uruchamianie klawiszy po naciśnięciu klawisza keypown/keypress. możemy zapobiec domyślnej akcji w dowolnym z tych zdarzeń.

Dzięki,

Śiva

+0

To nie jest właściwa odpowiedź na zadane pytanie inaczej bym go upvote; jednak naprawdę doceniam twoje wysiłki na rzecz dostarczenia użytecznych informacji. –

+0

nie używaj 'keyup', ale używaj' keydown' i dodaj jego odpowiedź –

Powiązane problemy