Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 返回时,事件会重复_Javascript_Jquery_Jquery Mobile - Fatal编程技术网

Javascript 返回时,事件会重复

Javascript 返回时,事件会重复,javascript,jquery,jquery-mobile,Javascript,Jquery,Jquery Mobile,我有2个data role=“page”当您单击2页(div)的入口通行证时,第一个是从json文件形成的,并且有关于记录的更多信息 在第二节中,我返回了back 问题是,如果第一次单击它正常工作,它将返回一个包含所有记录的页面。第二次单击时,过程继续到块1,然后突然返回到块2,其中显示了详细信息 所有记录 $.getJSON('one.json', function(data, key) { var str = ""; $.each(data, fu

我有2个
data role=“page”
当您单击2页(div)的入口通行证时,第一个是从json文件形成的,并且有关于记录的更多信息

在第二节中,我返回了
back

问题是,如果第一次单击它正常工作,它将返回一个包含所有记录的页面。第二次单击时,过程继续到块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);
        });
$.getJSON('one.json',函数(数据,键){
var str=“”;
$。每个(数据、功能(键、数据){
str+=”;
});
$('#listbreanch').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('tap','item',函数(e){
e、 预防默认值();
var id=$(this.attr(“id”);
/*-----Плавный переход--------------------*/
$.mobile.pageContainer.pageContainer(“change”、“mypage.html#recept”、{transition:“fade”});
/*----------Формирование на другой странице-------------*/
$.getJSON(edaid+'.json',函数(数据,键){
var thistr=“”;
$。每个(数据、功能(键、数据){
if(data.id==id){
thisstr+=“”+数据.文本+“”;
}
});
$('#json').html(thisstr);
});
});

我没有深入研究代码,但似乎每次进入详细信息页面时,都会在事件上重新创建
。因此,每次单击该按钮时,它都会再次运行该函数。这就是为什么在你看来它每隔一段时间都“正确”工作的原因。因此,在细节页面的每一个偶数条目上,您都会得到“wierd”效果。

确保
(文档)。在('tap','.item',函数(e){
只运行一次,它将得到解决。

从您的问题中很难理解您的需要。如果我理解正确,您有一个显示列表的页面。该列表中的每个成员都可以单击并指向详细信息页面。一旦到了那里,您就有一个“返回”返回列表的按钮。问题是-当转到详细信息页面,然后返回列表,然后再次返回详细信息页面并单击“上一步”按钮时-它会转到列表页面,然后再次转到详细信息页面。我的回答正确吗?这不起作用,我尝试
$(文档)。在('tap','back',函数(e){e.stopPropagation();$.mobile.back();});
但现在不是我拥有的事件
back
`data rel=“back”'它正在工作。调试您的代码,并在您的
语句上放置断点。
语句上。查看它们是否运行多次。在回调中放置调试点-查看它们在每次单击时是否运行多次。事件发生1次,但链接无法正常工作。我尝试
$('body')。关闭('tap')。打开('tap','back',函数(事件){event.stopPropagation();$.mobile.back();console.log('1');})
在控制台中,我看到一条记录
1
我发现问题,我从
$(文档)中删除了所有代码