返回时会出现重复事件

There is a duplication of events ,when returning back

本文关键字:事件 返回      更新时间:2024-06-26

我有两个data-role="page"第一个是(从json文件)形成的,当你点击2页(div)的入口通行证时,有更多关于录制的信息

在第二个div中,我有<a data-rel="back" ><div class="back" >back</div></a>

问题是,第一次点击它工作正常,它会返回一个包含所有记录的页面。第二次点击,过程进行到块1,然后突然返回到块2,在那里有一个详细信息

所有记录

  $.getJSON('one.json', function(data, key) {
          var str = "";
          $.each(data, function(key, data) {
            str += "<div class='item' id='" + data.id + "' style='background: url(" + data.img + "/" + data.img + "); background-size: cover;'></div>";
          });
          $('#listlistbreakfast').html(str);
        });

转到第二页

(document).on('tap', '.item', function(e) {
    e.preventDefault();
    var id = $(this).attr("id");
    /*-----Плавный переход--------------------*/
    $.mobile.pageContainer.pagecontainer("change", "mypage.html#recept", {transition: "fade"});
    /*----------Формирование на другой странице-------------*/
    $.getJSON(edaid+'.json', function(data, key) {
      var thisstr = "";
      $.each(data, function(key, data) {
        if (data.id == id) {
          thisstr += "<div class='personalimg' style='background: url("+data.img+"/" + data.img + "); background-size: cover;' >"+data.text+"</div>"; 
        }
      });
      $('#json').html(thisstr);
    });
  });

我没有深入研究代码,但似乎每次进入详细信息页面时,都会重新创建on事件。因此,每次单击按钮时,它都会再次运行该功能。这就是为什么在你看来它每隔一次都"正确"工作的原因。因此,在细节页面的每偶数个条目上,你都会得到"wierd"效果。确保(document).on('tap', '.item', function(e) {只运行一次,它就会得到解决。