jquery单击事件只工作一次

jquery单击事件只工作一次,jquery,jquery-click-event,Jquery,Jquery Click Event,我整个上午都在研究这个问题,但我遗漏了一些东西 以下是基本设置和代码: <script src="/mwebphoto/js/jquery-2.0.3.js"></script> <div id="slideshow"> </div> </head> <body> <ul id="gallery_id"> <li id="newYork">New York</li> <l

我整个上午都在研究这个问题,但我遗漏了一些东西

以下是基本设置和代码:

<script  src="/mwebphoto/js/jquery-2.0.3.js"></script>

<div id="slideshow">
</div>

</head>
<body>

<ul id="gallery_id">
 <li id="newYork">New York</li>
 <li id="disconnection">Disconnexion</li>
 <li id="jackAtSea">Jack at Sea</li>
</ul>
<script>

  $(document).ready(function () {

      $("#gallery_id li").click(function () {
          var htmlTitle = (this.id);

          $.ajax({
              type: "GET",
              url: "/mwebphoto/xml/albums.xml",
              dataType: "xml",
              success: function (xml) {
                  $(xml).find('album').each(function () {
                      var xmlAlbum = $(this);
                      var xmlTitle = $(this).find('title').text();
                      var xmlEmbedCode = $(this).find('embedCode').text();
                        if (xmlTitle == htmlTitle) 
                          alert(xmlTitle)
                          $("#slideshow").replaceWith(xmlTitle)

                  });
              }
          });
      });

  });
</script>
警报工作正常。但是.replaceWith将第二个li断开连接放在div中,无论我单击哪个列表项

你可以在这里看到:

应该是

$("#gallery_id li").on('click', function(e) {
       alert(this.id);
  });

试试这个

更新:

为了显示差异,我创建了

希望您能找到不同之处。

如果您的html是

<ul id="gallery_id">
   <li>1</li>
   <li>2</li>
</ul>

它现在做了什么,应该做什么呢?从语义的角度来看,假设单击列表项会改变某些内容,它们可能会包含锚定标记。在运行ajax回调时,是否替换了click目标元素?这会杀死你的点击处理程序。你试过这个吗$文档。单击“图库id li”功能E{…因为实际上您正在将处理程序绑定到gallery_id li中的每个li元素,但是您没有。您真的在标记中有吗?我认为这是无效的html。我认为问题在于:ifxmlTitle==htmlTitle$slideshow.replaceWithxmlTitle alertxmlTitle如果.replaceWithIs评论。但是当.replaceWith激活时,警报会在所有三个选项中循环,然后我无法再次单击。忽略上次的答复。情况如下:我认为问题出在这里:ifxmltTitle==htmlTitle alertxmlTitle$slideshow.replaceWithxmlTitle警报工作正常。但是.replaceWith将seco无论我单击哪个列表项,都会在中断开连接。@mweb202是否可以共享xml文件?此处的“$xml”xml文件是什么:$xml部分查找节点相册的子项。该部分似乎工作正常。以下是指向测试页的链接:
$("#gallery_id li").on('click', function(e) {
       alert(this.id);
  });
$("#gallery_id").on('click','li', function () {
         alert(this.id);
     })
$(document).on('click','#gallery_id li', function () {
         alert(this.id);
     })
<ul id="gallery_id">
   <li>1</li>
   <li>2</li>
</ul>
 $("#gallery_id").on('click','li', function () {
         // your code
     })