如果我想要的 URL 在 API 的 JSON 中,我怎样才能得到 API 的 URL?
How can I get the URL for an API if the URL I want is in the API's JSON?
所以我正在使用 soundcloud API 来获取用户的收藏夹。他们的最大限制是每个请求 200,但是在 object 的末尾,他们有一个 a_href 键,其值是收藏夹的下一页。
基本上,我正在尝试放置一个按钮,以便用户可以单击它,然后它将为他们提供接下来的 200 个赞。我的问题是在不多次调用原始 API URL 的情况下访问 data.a_href。我的代码看起来像这样:
function getAPIURL(username, subSection){
apiurl = "https://api.soundcloud.com/users/" + username + "/" + subSection + "/?client_id=" + clientID + limit + "&linked_partitioning=1"
}
function getFavorites(){
titleList.length = 0;
artistList.length = 0;
imgList.length = 0;
idList.length = 0;
$(".trackList").html("");
username = $("input").val();
subSection = "favorites";
getAPIURL(username, subSection);
getAPI(apiurl);
}
function getAPI(apiurl){
$.getJSON(apiurl, function(data) {
//Does some stuff then
$(".nextPage").on("click", function(){
titleList.length = 0;
artistList.length = 0;
imgList.length = 0;
idList.length = 0;
$(".trackList").empty();
getAPI(data.next_href);
})
});
}
当我转到第二页时,以上内容效果很好。但是,当我尝试转到第三页时,它就像在调用第三页之前同时调用了第二页和第一页....
有什么想法吗?
这是在每次调用时重新应用点击:
function getAPI(apiurl){
$.getJSON(apiurl, function(data) {
//Does some stuff then
$(".nextPage").on("click", function(){
titleList.length = 0;
artistList.length = 0;
imgList.length = 0;
idList.length = 0;
$(".trackList").empty();
getAPI(data.next_href);
})
});
}
每调用一次,点击处理程序的数量就会增加 1,每个都会被调用。
要停止重新应用它,请将其移除然后再应用。 off()
进行删除。
function getAPI(apiurl){
$.getJSON(apiurl, function(data) {
//Does some stuff then
$(".nextPage").off("click").on("click", function(){
titleList.length = 0;
artistList.length = 0;
imgList.length = 0;
idList.length = 0;
$(".trackList").empty();
getAPI(data.next_href);
})
});
}
为了让以后的生活更轻松,请将 onclick
绑定与 getAPI
调用分开。
如果按钮在 DOM 中不存在,直到某些事件发生,绑定到父元素,它们将不需要 off
/on
:
$("PARENT OF THE .nextPage BUTTON").on("click", ".nextPage", function(){
...
})
所以我正在使用 soundcloud API 来获取用户的收藏夹。他们的最大限制是每个请求 200,但是在 object 的末尾,他们有一个 a_href 键,其值是收藏夹的下一页。
基本上,我正在尝试放置一个按钮,以便用户可以单击它,然后它将为他们提供接下来的 200 个赞。我的问题是在不多次调用原始 API URL 的情况下访问 data.a_href。我的代码看起来像这样:
function getAPIURL(username, subSection){
apiurl = "https://api.soundcloud.com/users/" + username + "/" + subSection + "/?client_id=" + clientID + limit + "&linked_partitioning=1"
}
function getFavorites(){
titleList.length = 0;
artistList.length = 0;
imgList.length = 0;
idList.length = 0;
$(".trackList").html("");
username = $("input").val();
subSection = "favorites";
getAPIURL(username, subSection);
getAPI(apiurl);
}
function getAPI(apiurl){
$.getJSON(apiurl, function(data) {
//Does some stuff then
$(".nextPage").on("click", function(){
titleList.length = 0;
artistList.length = 0;
imgList.length = 0;
idList.length = 0;
$(".trackList").empty();
getAPI(data.next_href);
})
});
}
当我转到第二页时,以上内容效果很好。但是,当我尝试转到第三页时,它就像在调用第三页之前同时调用了第二页和第一页....
有什么想法吗?
这是在每次调用时重新应用点击:
function getAPI(apiurl){
$.getJSON(apiurl, function(data) {
//Does some stuff then
$(".nextPage").on("click", function(){
titleList.length = 0;
artistList.length = 0;
imgList.length = 0;
idList.length = 0;
$(".trackList").empty();
getAPI(data.next_href);
})
});
}
每调用一次,点击处理程序的数量就会增加 1,每个都会被调用。
要停止重新应用它,请将其移除然后再应用。 off()
进行删除。
function getAPI(apiurl){
$.getJSON(apiurl, function(data) {
//Does some stuff then
$(".nextPage").off("click").on("click", function(){
titleList.length = 0;
artistList.length = 0;
imgList.length = 0;
idList.length = 0;
$(".trackList").empty();
getAPI(data.next_href);
})
});
}
为了让以后的生活更轻松,请将 onclick
绑定与 getAPI
调用分开。
如果按钮在 DOM 中不存在,直到某些事件发生,绑定到父元素,它们将不需要 off
/on
:
$("PARENT OF THE .nextPage BUTTON").on("click", ".nextPage", function(){
...
})