Maison  >  Questions et réponses  >  le corps du texte

javascript - Problème d'exécution répétée de l'événement jq click

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 ?

曾经蜡笔没有小新曾经蜡笔没有小新2686 Il y a quelques jours1012

répondre à tous(9)je répondrai

  • 漂亮男人

    漂亮男人2017-07-05 10:40:45

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

    répondre
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-07-05 10:40:45

    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();
    });

    répondre
    0
  • 某草草

    某草草2017-07-05 10:40:45

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

    répondre
    0
  • 天蓬老师

    天蓬老师2017-07-05 10:40:45

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

    répondre
    0
  • typecho

    typecho2017-07-05 10:40:45

    off Délier d'abord, puis lier

    répondre
    0
  • 滿天的星座

    滿天的星座2017-07-05 10:40:45

    $('document').unbind('click').click(function() {
                //dosomething
                })

    répondre
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-07-05 10:40:45

    function removeMaopao(ev){
            var eEvent = ev || event;
            eEvent.stopPropagation() && eEvent.stopPropagation;
            return false;
        }
    

    répondre
    0
  • 天蓬老师

    天蓬老师2017-07-05 10:40:45

    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();
    });

    répondre
    0
  • phpcn_u1582

    phpcn_u15822017-07-05 10:40:45

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

    répondre
    0
  • Annulerrépondre