javascript - ajax xml 加载后 jQuery 切换不起作用

标签 javascript jquery ajax xml

我似乎无法弄清楚为什么在我的 ajax xml 加载后切换不起作用。它正确地提取 xml。但是,无法执行切换。

这是 jQuery onclick 的 xml 加载和切换

      $("document").ready(function(){

           $("#demo").on("click", loadxml);
           $("#demo-2").click(function(){
              $("li").toggle("fast");        
          });
        });

loadxml 函数:

    function loadxml(){
     var xhttp = new XMLHttpRequest();
     xhttp.onreadystatechange = function(){
         if (xhttp.readyState == 4 && xhttp.status == 200) {
             myFunction (xhttp);
          }
    };
    xhttp.open("GET","xml/categories.xml", true);
    xhttp.send();
}

 function myFunction(xml){
      var i;
      var xmlDoc = xml.responseXML;
      var list = '<ul id="demo-2" class="list-unstyled no-bullet"><span class="glyphicon glyphicon-folder-open" aria-hidden="true"></span> Categories';
     var x = xmlDoc.getElementsByTagName("Categories");

  for(i=0; i<x.length; i++) {
        list += '<li><span class="glyphicon glyphicon-minus" aria-hidden="true"></span>' +  x[i].getElementsByTagName("CategoryName")[0].childNodes[0].nodeValue + "</li>";
}

list += "</ul>"

document.getElementById("change").innerHTML = list;

}

这是 html:

        <div class="container" id="change">
             <ul id="demo"></ul>
         </div>

最佳答案

此代码:

$("#demo-2").click(function(){
   $("li").toggle("fast");        
});

应该是:

$("#change").on('click','#demo-2',function(){
   $("li").toggle("fast");        
});

Thats because your are adding dinamic content on your #change selector.

关于javascript - ajax xml 加载后 jQuery 切换不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37352809/

相关文章:

javascript - 本地 JSON 文件更新

javascript - 使用复选框过滤到新的对象数组 - javascript

javascript - 实现函数的闭包和自调用

javascript - 数组 - 在两个日期之间过滤

javascript 在渲染的 js 部分中不可用

javascript - 仅针对开发从 tsconfig 发出 SourceMap

php - Ajax 在 php 语句中不起作用

javascript - 在多个 ajax 事件完成时调用函数

javascript - Jquery 克隆函数不工作

javascript - 系列 Ajax 请求不等待完成