jquery .append()工作然后消失了?

时间:2017-04-06 15:53:43

标签: javascript jquery

我正在使用FreeCodeCamp的Wikiviewer,我遇到了一个奇怪的问题。

我只是在这里运行一个基本的例子(它现在还不错,只是概念证明): http://codepen.io/msmith1114/pen/peBKxM?editors=1111

我在这里附加(在JS代码中,并非如此):

$("#links").append('<li><a href="' + arrayLinks[0] + '">' + arrayName[0] + '</a></li>');
      $("#links").append('<li><a href="' + arrayLinks[1] + '">' + arrayName[1] + '</a></li>');
      $("#links").append('<li><a href="' + arrayLinks[2] + '">' + arrayName[2] + '</a></li>');
      })

所以这确实有2个问题(如果你在控制台打开的情况下尝试打开,你会看到)

第1个主要问题:列表将显示(3个链接)然后消失......这没有任何意义。据我所知,jquery.append()应该将它们留在那里,因为我将它们附加到我的html部分

第2期:似乎有时getJSON不会返回任何内容。我认为在.done()部分中包装我的语句会确保在维基百科API返回之前不会做任何事情,但有时你只是得不到任何回报。这是一个WikiAPI问题还是别的? (顺便说一句,如果它不起作用,只需继续输入&#34; cat&#34;或者搜索框中的某些内容再次点击搜索,它将最终起作用,直到遇到上面的问题1)。 / p>

感谢。我还在学习JS / Jquery所以我有点不解为什么这样做不会起作用。

1 个答案:

答案 0 :(得分:5)

第一个问题是因为您已经点击了提交按钮的点击。这不会停止表单提交,因此页面会重新加载。请改用submit元素的form事件,并确保在提供的事件上调用preventDefault()

$(".form-inline").submit(function(e) {
  e.preventDefault();

  // the rest of your code here...
});

关于第二个问题,这可能是一个限制性问题。没有看到错误,就无法给出明确的答案