JQuery-重新加载Div并在点击时调用API
JQuery - Reloading a Div and Calling an API On Click
我正在构建一个随机报价生成器web应用程序,我可以使用JQuery调用API,然后使用返回的JSON数据打印报价。我实现了一个按钮,试图为另一个报价调用API,它调用getJSON函数,但不会获得新的JSON数据。
CodePen上有完整的代码:http://codepen.io/oscarwong67/pen/eZLQLz
以下是我用来获得报价的方法:
var getQuote = function() {
$.getJSON("http://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1" + "?callback?", function(json) {
console.log(json);
$("#quote").html(json[0].content);
$("#speaker").html("- " + json[0].title);
});
}
getQuote(); //called when the page initially loads
$("#new-quote").on("click", function() {
getQuote();
});
下面是它更改的相关HTML:
<div class="col-xs-12 col-sm-8 col-md-6 text-center" id="quote-div">
<p id="quote">Loading Your Quote</p>
<p id="speaker"></p>
<button class="btn btn-default btn-block" id="new-quote">New Quote!</button>
</div>
该函数在页面最初加载时调用,并将在单击按钮时调用,但返回的JSON不会更改。
$.getJSON存在缓存问题。您需要设置缓存:false。只要这样做,你的代码就可以正常工作。
设置缓存:false有很多方法。两种可能的方式是:
$(document).ready(function() {
$.ajaxSetup({ cache: false });
});
和
$.ajaxSetup({ cache: true});
$.getJSON("/url",function(data,item) {
// do stuff with callback data
$.ajaxSetup({ cache: false});
});
您的最终JS:
var getQuote = function() {
$.getJSON("http://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1" + "?callback?", function(json) {
console.log(json);
$("#quote").html(json[0].content);
$("#speaker").html("- " + json[0].title);
$("#speaker").css('text-align', "right");
$("#speaker").css('padding-right', "2%");
$("#speaker").css('font-size', "16pt");
$("#speaker").css('font-weight', "bold");
$.ajaxSetup({ cache: false });
});
}
Codepen
相关文章:
- 如何在 API 调用后和 if 语句中启用提交按钮
- NodeJS API调用中Array中的Push和Pull元素
- 在Chrome扩展内部输出Google API调用
- IE11中的第二个调用取消了第一个Fetch API调用
- RxjsObservable:通过一个API调用订阅不同的值
- 通过API调用过滤数据
- 给出<选项>标记一个类?API调用不工作
- 使用Angular获取数据API调用时出错
- javascript API调用导致旧数据
- 在一个服务中引用多个API调用(Angular)
- 背景:'userId'在SignUp API调用后为null
- 对/Token的ASP Web API调用间歇性
- Web API 调用在设备模式下失败
- 将使用 $.ajax() 和 JSONP 的 API 调用替换为服务器到服务器的 API 调用
- 如何将 JavaScript Yahoo Weather API 调用属性替换为变量
- 谷歌日历 api 调用可以在角度工厂内返回承诺吗?
- 仅显示 Google 表格中来自 api 调用的最新数据行
- 我的 API 调用没有返回任何内容
- 如何通过声云 api 调用获取用户 ID
- 在 api 调用$resource显示错误和成功消息