javascript - Problème d'exécution répétée de l'événement jq click
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-07-05 10:38:45
0
9
1054

S'il vous plaît, aidez-moi, les éléments générés dynamiquement par jq doivent être liés à des événements de clic pour prendre effet, et la fonction qui s'exécute a également des événements de clic, puis la fonction est exécutée deux fois. Comment résoudre cette situation ?

曾经蜡笔没有小新
曾经蜡笔没有小新

répondre à tous(9)
漂亮男人

Utilisez l'objet événement pour trouver la cible sur laquelle vous souhaitez vraiment cliquer

曾经蜡笔没有小新

En fait, ce n'est rien de plus que l'événement lié deux fois ou l'événement bouillonnant
1 Délier l'événement et le lier à nouveau

.
$(ele).unbind('click').click(function() {
        // to do    
})

2, Annuler le bouillonnement

$(ele).click(function(e){
   e.stopPropagation();
});
某草草

Supprimez d'abord la surveillance, puis surveillez
.off(handler).on(handler)

Peter_Zhu

Est-ce que ça bouillonne ? e.stopPropagation()

typecho

off Délier d'abord, puis lier

滿天的星座
$('document').unbind('click').click(function() {
            //dosomething
            })
过去多啦不再A梦
function removeMaopao(ev){
        var eEvent = ev || event;
        eEvent.stopPropagation() && eEvent.stopPropagation;
        return false;
    }
Peter_Zhu

La personne ci-dessus a été plus claire.
1. Problème trouvé
1.1 est lié deux fois, car l'élément généré dynamiquement est lié à un événement, mais dans cet événement, l'événement précédemment lié est à nouveau appelé

$('document').unbind('click').click(function() {
    //取消绑定的回调事件
})

1.2 Elle est toujours causée par le bouillonnement d'événements (si vous n'êtes pas familier avec le bouillonnement, veuillez d'abord lire les informations pertinentes)

$('document').click(function(e){
   //取消事件冒泡
   e.stopPropagation();
});

2. Les éléments générés dynamiquement ne doivent pas nécessairement utiliser des événements de liaison dynamique

Les gestionnaires d'événements utilisant la méthode délégué() fonctionnent sur les éléments actuels ou futurs (tels que les nouveaux éléments créés par des scripts).
Cliquez ici pour consulter les documents détaillés : http://www.w3school.com.cn/jq...

$("p").delegate("button","click",function(){
  $("p").slideToggle();
});
phpcn_u1582

N'oubliez pas d'éteindre() après on()

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal