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

javascript - Grâce à ajax, toutes les données sont chargées dans ul et l'événement ul li click est ajouté, mais il ne peut pas être déclenché.

Grâce à ajax, toutes les données sont chargées dans ul et l'événement ul li click est ajouté, mais il ne peut pas être déclenché. S'il s'agit d'un événement ul, il peut être déclenché.

ajax

 /*省市*/
$("#proNum").click(function(){        
        $.ajax({type:"post",
              url:"region/jsonRegion",
              dataType:"json",
              success:function(data){                  
            $("#gj_disProvince").toggleClass("active");
                var listr ="";
                for(var i = 0; i < data.length; i++){
                    listr +="<li class='com-li gj_dispro' proNum='"+data[i].id+"'>"+data[i].placename+"</li>";
                }
                $("#assessPro").html(listr); //添加全部城市            
           }
        
        });
    });

Schéma de mise en œuvre

étiquettes

                <p class="conselect mr-7" id="gj_disProvince">
                    <input class="inputype" readonly="readonly"placeholder="省份"
                        id="proNum" proNum="0">
                    <p class="p-r">
                        <p class="down-box">
                            <ul class="com-ul com-ul-288" id="assessPro">
                            </ul>
                        </p>
                    </p>
                </p>

Événements

    /*选择一个省 ,li[class='com-li gj_dispro'] 触发不了*/
    $("ul[class='com-ul com-ul-288']").click(function(){
         alert(1);    
        // 不明白为什么 ul 能触发,li就不行,
        //请教一下如何获取到选择中li的省市和id           
    });
学习ing学习ing2706 Il y a quelques jours1122

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

  • 黄舟

    黄舟2017-06-12 09:24:31

    $('selector').on('click','childSelector',function(){})
    使用 on() 方法添加的事件处理程序适用于当前及未来的元素

    répondre
    0
  • 代言

    代言2017-06-12 09:24:31

    Étant donné que l'événement ajax est exécuté de manière asynchrone, lorsque vous cliquez, il n'y a pas de structure Li Don

    répondre
    0
  • 滿天的星座

    滿天的星座2017-06-12 09:24:31

    Enregistrez l'identifiant dans l'attr de li lors de la boucle
    <li c_id="" >
    Cliquez sur l'événement pour obtenir
    var cid = $this.attr('c_id');

    répondre
    0
  • 扔个三星炸死你

    扔个三星炸死你2017-06-12 09:24:31

    Utilisez $parentNode.on('click',childNode,callback) pour lier des événements. Le principe est le mécanisme de bouillonnement d'événements

    .

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

    过去多啦不再A梦2017-06-12 09:24:31

    Notez trois points :
    1. La fonction d'enregistrement d'événement doit être enregistrée une fois l'appel Ajax réussi. Vous pouvez appeler la fonction d'enregistrement d'événement dans la fonction de rappel ajax.
    2. Assurez-vous que votre fonction d'enregistrement d'événement n'est pas mal écrite. fonction d'événement ici Mauvaise écriture, attribuez directement une valeur au clic, puis votre sélecteur de classe je n'ai trouvé aucun élément dont la valeur de classe est la valeur dans votre sélecteur. Sinon, bien sûr, il ne peut pas être sélectionné.
    3. Assurez-vous que l'événement a été enregistré avant de cliquer sur l'événement.

    répondre
    0
  • Annulerrépondre