我已经有一段时间了,我已经尝试了一切(并且由于stackoverflow而学到了很多新东西)。我一直遇到的问题是我似乎无法从我的 citations.js 保存的点击处理程序中获取值,以便我可以在 main.js 中使用它?我尝试过使用带有 set 和 get 的函数,在 click 处理程序中返回 ajax 调用以及其他一些东西,因此非常感谢任何帮助,
我有三个 .js 文件 request.js、citations.js 和 main.js
这是代码,
request.js,
function citeAjax(citationId) {
return $.ajax({
type: 'GET',
url: 'https://www.sciencebase.gov/catalog/itemLink/' + citationId +
'?format=jsonp',
jsonpCallback: 'getSBJSON',
contentType: "application/json",
dataType: 'jsonp'
});
}
var promise = citeAjax(citationId);
citations.js,
promise.done(function (json) {
var linkBase = "http://www.sciencebase.gov/catalog/item/";
var link = "";
var itemId = "";
var urlId = "";
$.each(json.items, function(i,item) {
link = linkBase + this.id;
$('#sbItems').append('<li><b><a href="' + link + '" id="idNum' +
i + ' ">' + this.title + '</a> - </b>' + this.summary + '</li>');
});
$('#sbItems a').click(function () {
var str = $(this).attr('id');
if (str.length == 7) {
itemId = str.slice(5,6);
} else if (str.length == 8) {
itemId = str.slice(5,7);
}
**// I want to get (json.items[itemId].id) which is any id from the
link that is clicked and then store it in citeAjax()**
}); // END Click event
}).fail(function() {
alert("Ajax call failed!");
});
主.js,
我想用
promise.done(function (json) {
// do something with the ajax request from any id that's inserted into the url
});
谢谢您的帮助