Arrêter la propagation à travers html “onclick” de l'événement et JS
C'est mon html morceau
<tr>
<td class="c_menu" id="bat_light">
<a href="someLink/file.html#" onclick="OpenItem('light');return false;">sometitle</a>
</td>
<td class="c_menu" id="bat_econom">
<a href="someLink/file.html#" onclick="OpenItem('econom');return false;">
sometitle</a>
</td>
<td class="c_menu" id="bat_standart">
<a href="someLink/file.html#" onclick="OpenItem('standart');return false;">
sometitle</a>
</td>
<td class="c_menu" id="bat_premium">
<a href="someLink/file.html#" onclick="OpenItem('premium');return false;">
sometitle</a>
</td>
</tr>
et c'est JavaScript intro au sommet
function OpenItem(name){
var blocks = ['light', 'econom', 'standart', 'premium'];
for(var i = 0; i < blocks.length; i++){
if (blocks[i] == name){
document.getElementById('bat_'+blocks[i]).className="c_menu active";
document.getElementById('descr_'+blocks[i]).style.display="block";
document.getElementById('tab_'+blocks[i]).style.display="block";
}
else{
document.getElementById('bat_'+blocks[i]).className="c_menu";
document.getElementById('descr_'+blocks[i]).style.display="none";
document.getElementById('tab_'+blocks[i]).style.display="none";
}
}
}
Je comprends comment réparer page par défaut topscrolling en JQuery,mais impuissant dans ce cas, avec de simples JS. Réécrire le code de JQuery inacceptable. Essayé de mettre des " il " comme deuxième argument de la fonction, puis de l'événement.preventDefault() - ne fonctionne pas.
Le
Séparer ce qui semble fonctionner. Il doit y avoir un événement attaché à un élément parent, ou comme Tom l'a dit, une erreur à l'origine de votre script à l'échec. codepen.io/anon/pen/fxjbg
return false
devraient couvrir ces besoins. Vérifiez votre console pour voir si il y a d'autres erreurs dans le JS qui pourrait faire échouer avant qu'il arrive à la fin.Séparer ce qui semble fonctionner. Il doit y avoir un événement attaché à un élément parent, ou comme Tom l'a dit, une erreur à l'origine de votre script à l'échec. codepen.io/anon/pen/fxjbg
OriginalL'auteur tegowai | 2014-08-06
Vous devez vous connecter pour publier un commentaire.
Pour arrêter la propagation de l'évènement, vous devez utiliser la méthode suivante.
La événement objet est passé par défaut pour la fonction de gestionnaire pour tout événement. Donc, au lieu de définir des gestionnaires d'événements en direct, de définir dans un fichier script distinct. Les gestionnaires d'événements devrait être fixé une fois que le DOM est chargé. Vous pouvez suivre le modèle montré dans l'extrait de code ci-dessous.
Liste De Lecture
Pas de. Il semble que vous avez données associées à votre balisage de sorte que le meilleur moyen serait de données* les attributs de HTML. Cochez cette lien. Avec cette approche ci-dessus, on peut écrire
data-type = "light"
et l'accès à l'aidethis
dans le gestionnaire d'événement.OriginalL'auteur Ajinkya
Vous pouvez écrire événement.stopPropagation() directement dans l'attribut onclick trop.
<div class="example" onclick="someFuntion(); event.stopPropagation();"></div>
OriginalL'auteur Roolern