Edit: problème n'a pas été lié de propagation de l'événement, si vous voulez savoir comment arrêter la propagation dans jQuery, puis utilisez event.stopPropagation();
des événements Application Handler à Éléments enfants (Propogation événement jQuery)
Lorsque l'utilisateur déplace sa souris sur <span>
élément mon code jQuery ajoute un <img>
dans cet élément <span>
et quand il déplace sa souris sur <span>
que l'élément ajouté est supprimé. Il aide les gens à modifier le champ en cliquant sur l'élément <img>
ajouté.
La raison pour laquelle je append()
méthode pour ajouter <img>
dans <span>
est parce que je veux garder élément <img>
visible lorsque l'utilisateur déplace sa souris sur joint élément <img>
(<img>
devient <span>
« élément enfant s) Mais il n » t se produit et lorsque l'utilisateur déplace sa souris dessus <img>
est en cours de suppression. Je pense que c'est parce que la propagation d'événements, mais je ne pouvais pas trouver comment l'activer dans jQuery comme nous le faisons avec addEventListener
dans les navigateurs basés sur Firefox.
Voici le code:
code JQuery:
$(document).ready(function() {
$('.EditEnabled').bind("mouseover", ShowEditFields);
$(".EditEnabled").bind("mouseout", HideEditFields);
});
function ShowEditFields(event) {
$(event.target).append(" <img id='editImg' src='images/edit.png' style='margin-bottom:-3px'/>");
}
function HideEditFields(event) {
$(event.target).children("#editImg").remove();
}
HTML simple:
<span id="something" class="EditEnabled">Something Here</span>
Pouvez-vous expliquer ma façon de le résoudre.
Merci.
Merci, mais pourriez-vous me dire la raison pour laquelle vous évitiez la manipulation DOM? Je sais que ce n'est pas lié à la question principale, mais j'aimerais savoir si cela ne vous dérange pas. – Tarik
La manipulation DOM est coûteuse, au niveau du processeur. C'est pourquoi vous devriez juste montrer/cacher autant que possible –
Selon le navigateur, la manipulation DOM est chère. Pensez-y: le navigateur peut avoir à comprendre comment rendre le document (à nouveau). Il peut également causer des fuites de mémoire si fait trop à certains navigateurs. – cletus