c'est mon ancre que j'utilise dans la pagination CodeIgnitor.
e.preventDefault is not a function
maintenant c'est la définition de la fonction en Javascript
e.preventDefault()
Maintenant e est une ancre qui est affichée dans la console. mais quand j'essaye
function myFunction(e){ console.log(e); e.preventDefault() }
cela me donne cette erreur.
<a href="http://perfex_crm.ng/clients/get_front_page_jobs/2" onclick="myFunction(this)" data-ci-pagination-page="2">2</a>
et évidemment la page est redirigée, ce qui est le problème original que je veux résoudre. je ne veux pas qu'il redirige.
3 Réponses :
Depuis que vous avez écrit onclick = "myFunction (this)"
, vous passez this
comme argument, où this
est votre Élément
.
Essayez plutôt de transmettre l ' événement
: onclick="myFunction(event)"
@xkrlaix, heureux de vous aider. Je vous recommande également de suivre les conseils de Quentin.
Vous transmettez la valeur de this
qui est l’objet élément
, pas l’objet événement.
Vous pouvez passer événement à la place, mais vous devriez vraiment éviter d'utiliser des attributs d'événement intrinsèques (qui ont un tas de pièges) et passer à
addEventListener
.
const links = document.querySelector('[data-ci-pagination-page]'); for (let i = 0; i < links.length; i++) { links[i].addEventListener(myFunction); }
Monsieur pour le moment, mon code fonctionne mais pour référence future, j'utiliserai vos conseils. maintenant j'utilise ce code. comment puis-je passer 2 paramètres? code
function maFonction (e, a) {console.log (e); e.preventDefault (); var pageno = $ (a) .attr ('data-ci-pagination-page'); }
cela semble fonctionner comme un charme:
<a href="http://perfex_crm.ng/clients/get_front_page_jobs/2" onclick="myFunction(event)" data-ci-pagination-page="2">2</a>
function myFunction(event){ event.preventDefault(); }