Existe-t-il un moyen d'exécuter une fonction uniquement si event.preventDefault() est appelée sur un événement (par une autre fonction inconnue). Ceci est pour un plugin jQuery, donc je n'ai aucune connaissance de ce que les autres parties de la page pourraient faire. J'ai essayé ceci:exécuter la fonction uniquement si l'événement par défaut est/n'est pas empêché
Event.test = Event.preventDefault;
Event.preventDefault = function() {
alert('Success');
this.test();
}
mais cela ne fonctionne pas ... se comporte comme normal, sans erreurs. Inversement, je veux aussi le contraire ... appeler une fonction seulement si event.preventDefault() n'est pas appelé. En effet, pour ajouter une fonction à l'action par défaut pour un événement. Des idées? Tout cela est-il possible? Editer: Basé sur le commentaire, j'ai une solution au premier problème: http://jsfiddle.net/nathan/VAePB/9/. Il fonctionne dans Chrome (alertes function preventDefault() { [native code] }
, mais les alertes IE undefined
) Donc IE ne me laissera pas définir Event.prototype.test, mais il me permettra de redéfinir Event.prototype.preventDefault.Wird je suis sûr que je peux venir avec . une solution au second problème en fonction de celui-ci si je peux l'obtenir pour travailler dans IE
Vous pouvez voir ce que vous pouvez obtenir par déconner avec « preventDefault » sur 'Event.prototype' au lieu de' Event' - ne fonctionnera probablement pas dans IE mais – Pointy
@Pointy Merci. Fonctionne dans Chrome. Il fonctionne à moitié dans IE8 ... IE exécute ma nouvelle fonction, mais n'empêche pas le défaut, ce qui est un peu gênant. Il doit y avoir un moyen de contourner cela, sûrement. –
Wow, IE a un comportement merdique face à ce problème ... J'ai même recréé la méthode preventDefault comme une nouvelle fonction appelée test qui retourne juste false. Pas de dé. – Stephen