2016-05-15 207 views
1

我有一个脚本,它将单击事件注册到按钮。 单击按钮时应执行的功能应该向Quotes API发出JSON请求,并给我的Quote元素随机引用。Javascript:JSON请求仅适用于第一次

$("document").ready(function() { 
    $("#new-quote").on("click", newQuote()); 
}); 

function newQuote() { 
    $.getJSON("http://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1&callback=", function(a) { 
    $("#quote-paragraph").html(a[0].content); 
    $("#footer").html(a[0].title); 
    }); 
} 

这就是我的代码应该如何,但我已经尝试了不同的解决方案,并找到我的错误。我在函数的最后添加了一个alert()语句,以查看函数是否被执行,以及它的作用。有时候好吧。我试了几次,每次尝试都得到了不同的结果。我正在使用codepen.io。谢谢你的帮助!

回答

6

在第二行

$("#new-quote").on("click", newQuote()); 

你执行该功能并指派其结果onclick事件,而不是分配功能本身。这就是为什么你的函数执行一次,当你做任务时,而不是再次执行,因为你没有实际分配它。这样做:

$("#new-quote").on("click", newQuote); 
+0

谢谢你的回答。我试过了,它现在执行该功能。现在的问题是它不再执行JSON请求。我可以看到它执行该函数是因为我添加了alert(),它给了我一个警报,但是我的报价没有任何变化。 –

+0

你能否更新代码并包含html标记,以便我们有更多信息?也许张贴链接到codepen或创建一个小提琴 –

+0

好的。我现在使用了一个新的API,并且一切正常。万分感谢。 –

相关问题