私が書いた Javascript に少し問題があります。コードの目的は次のとおりです。
- 提供された .TXT ファイルから SKU のリストを読み取る
- 各行でデータを分割する
- オブジェクトごとに、提供された JSON API を参照して SKU に関する情報を取得します。
- この情報を HTML テーブルに出力します。
現在、これは期待どおりに機能していますが、for
ループ後に実行しようとする他の Javascript をブロックしていないようです。
これが私のコードの例です
<script type="text/javascript">
//Set API Address
var api = "/api/AthenaService.svc/GetProductBySku/";
//Get Array of SKUs from TXT file
$.get('/Views/Locale/promoPages/LandingPages/TradeList/TradeList.txt',function(data){
//Split File into lines
var line = data.split('\n');
for(i=0;i<line.length;i++)
{
$.getJSON(api + line[i] , function(data1) {
// Request complete, NOW we can use the data we got!
$('.tListBody').append('<tr><td>' + data1.Title + '</td><td align="center">' + data1.Platform.Button + '</td></tr>');
});
};
});
$(document).ready(function() {
$('#searchLoading').fadeOut('slow');
$('#showForm').fadeIn('slow');
$('input#tradeSearch').blur(function() {
$('input#tradeSearch').quicksearch('table#Searchable tbody tr');
});
});
</script>
私が抱えている問題は、ドキュメントレディ内のものがまったく機能していないように見えることです。
上記のコードを更新して、以下から提案された修正を反映させました。コードは正常に実行されているようですが、クイックサーチ jQuery プラグインが起動していないようです。これは、検索する必要がある TR 要素が新しく作成された DOM 要素であるという事実に関連しているのだろうか?
どんな助けでも大歓迎です。
アップデート:
問題は解決しました!Quicksearch.js プラグインのドキュメントを少し読んだところ、ループの一部として手動でクイック検索キャッシュにエントリを追加できることがわかりました。これで問題は解決しました。
以下のコードを更新しました。
$(document).ready(function () {
var api = "/api/AthenaService.svc/GetProductBySku/";
//Get Array of SKUs from TXT file
$.get('/Views/Locale/promoPages/LandingPages/TradeList/TradeList.txt', function (data) {
//Split File into lines
var line = data.split('\n');
var qs = $('input#tradeSearch').quicksearch('.TheList tbody tr');
for (i = 0; i < line.length; i++) {
$.getJSON(api + line[i], function (data1) {
// Request complete, NOW we can use the data we got!
$('.tListBody').append('<tr><td>' + data1.Title + '</td><td align="center">' + data1.Platform.Button + '</td></tr>');
qs.cache();
});
};
});
});
助けと提案をありがとう