Jquery加载内容的次数太多

时间:2012-05-28 17:39:54

标签: jquery

在某人的帮助下,我创建了一个在页面中加载JSON内容的脚本。问题是内容加载的次数太多而不是一次。这是jquery函数,它包含在名为main.js的文件页面的头部中:

    function bakVorm(page,targetClass)
     {
     $.getJSON('http://shop.com/'+page+'/?format=json', function(data){
      var text = ''
      $.each(data.textpage, function(index, text){
      $(text).html('' + text + '').appendTo(targetClass);
});
});

在产品页面上,我尝试使用以下代码加载div中的内容:

$(function(){
bakVorm('vraag','.eigenschappen');
bakVorm('test','.verzendkosten');
});

问题是内容在相应的div中加载了太多次。可能脚本没有停止或什么的。

欢迎任何帮助

2 个答案:

答案 0 :(得分:2)

在这一行

$(text).html('' + text + '').appendTo(targetClass);

您正在将文本内容添加到文本中的每个顶级节点,因此如果文本是

 <div></div><p></p>

你最终会得到

<div><div></div><p></p></div><p><div></div><p></p></p>

所以省略html部分,只需

$(text).appendTo(targetClass);

答案 1 :(得分:0)

尝试清空代码中的targetClass:

function bakVorm(page,targetClass)
 {
 $.getJSON('http://shop.com/'+page+'/?format=json', function(data){
  var text = ''
  $.each(data.textpage, function(index, text){
  $(targetClass).empty().append(text);
  });
});

或尝试不使用append

function bakVorm(page,targetClass)
 {
 $.getJSON('http://shop.com/'+page+'/?format=json', function(data){
  var text = ''
  $.each(data.textpage, function(index, text){
  $(targetClass).html(text);
  });
});