わかりません、明らかに。セッターとゲッター、自己呼び出し関数などを試しました。クリック ハンドラーが値を返しているようですが、それを保持する方法はありませんか?
これは、最初のファイル request.js の私のコードです
var testId = (function (inId) {
var citeId = inId;
return citeId;
})();
function mainAjax() {
return $.ajax({
type: 'GET',
url: 'https://www.sciencebase.gov/catalog/items?parentId=504108e5e4b07a90c5ec62d4&max=60&offset=0&format=jsonp',
jsonpCallback: 'getSBJSON',
contentType: "application/json",
dataType: 'jsonp'
});
}
var promise = mainAjax();
これは私の 2 番目のファイル requestMain.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').on('click', function (e) {
e.preventDefault();
var str = $(this).attr('id');
if (str.length == 7) {
itemId = str.slice(5,6);
}
else if (str.length == 8) {
itemId = str.slice(5,7);
}
testId = json.items[itemId].id;
alert(testId);
}); // END Click event
}).fail(function() {
alert("Ajax call failed!");
});
この Web ページには、リンクのリストが表示されます。リンクには、2 番目の Web ページに表示したい情報が含まれている場合と、何も含まれていない場合があります。したがって、リンクがクリックされたときに、リンクからIDを保存/保存/保持する必要があります。これにより、URLでそれを使用して別のajaxリクエストを作成できます.IDを取得するまで、次のページのajaxリクエストにはどのような情報を求めるかを考えます。
今のところ、私は単にこれをやっています
alert(testId);
しかし、私がやろうとしているのはこれです。
$.ajax({
type: 'GET',
url: 'https://www.sciencebase.gov/catalog/itemLink/' + testId + '?format=jsonp',
jsonpCallback: 'getSBJSON',
contentType: "application/json",
dataType: 'jsonp',
// Then doing something with json.something
testId は URL で使用され、前のページでクリックされたリンクに応じて変化します。ajax 呼び出しはクリック イベントに完全に依存しており、別の Web ページに新しい情報が表示されます。
そして、これは私の3番目のファイルrequestCitation.jsにあります。
alert(testId);
これはスコープの問題だと思いますが、クリックから返された値をどのように保存できますか??? それをグローバルに使用できるようにするには?変数に格納しているとはいえ、クリックがまったくなかったかのように、値がスコープの外に消えるように見えますか?
最初のページの html には request.js と requestMain.js のスクリプト タグがあり、2 番目のページには request.js と requestCitation.js のスクリプト タグがあるため、両方とも変数 testId を確認できます。
助けてくれてありがとう!
これがjsfiddleです
これらはリンクであり、リンクがクリックされたとき