comment ré-activer par défaut après avoir fait l'événement.preventDefault()
Je sais que cette question a été posée ici, mais la réponse ne fonctionne pas pour ce que je devais faire alors j'ai pensé que je donnerais un exemple de code et d'expliquer un peu...
$(document).keypress(
function (event) {
//Pressing Up or Right: Advance to next video
if (event.keyCode == 40 || event.keyCode == 39) {
event.preventDefault();
$(".current").next().click();
}
//Pressing Down or Left: Back to previous video
else if (event.keyCode == 38 || event.keyCode == 37) {
event.preventDefault();
$(".current").prev().click();
}
}
);
Essentiellement, il désactive les touches fléchées pour les utiliser pour autre chose, mais le faire:
$(document).keypress(function () { });
n'est pas activer la fonction par défaut une fois de plus... j'en ai besoin pour faire défiler la page sans avoir à créer une fonction de défilement pour elle...
Des idées?
Merci,
Matt
- droit... sry j'ai enveloppé le "ici" dans un tag, mais j'ai oublié d'inclure le lien. J'ai fait jusqu'à maintenant, merci pour ça 🙂
- LOL, vous savez, quand je l'ai lu j'ai pensé que le phrasé regardé comme il a été la mendicité pour un lien...
- double possible de Comment faire pour réactiver l'événement.preventDefault?
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr que ce soit la bonne façon de le gérer.
Une meilleure approche de ce problème serait de mettre une sorte de vérifier à l'intérieur de votre document.keypress instructions.. comme..
De contrôler le enablekeys partout où vous pensez que c'est nécessaire, que ce soit avec un hover, ou quelque chose le long de ces lignes.
L'ajout d'un nouveau gestionnaire ne remplace pas la précédente, elle ajoute un nouveau. Vous cherchez peut-être pour
jQuery#unbind
si vous essayez de supprimer le précédent gestionnaire, mais si vous allez tourner ce sur et en dehors d'un lot, vous serait probablement mieux avec un drapeau de vous dire que pour éviter le défaut ou pas dans votre gestionnaire.Ajout, et, plus tard, de suppression, d'un gestionnaire ressemble à ceci:
et son contraire
Pourquoi ne pas tout simplement enrouler une condition dans
event.preventDefault();
dans votre code actuel?Essayer de unbind l'événement keypress de document.
Je ne connais pas d'autres façons de le faire.
HTH