0

私が書いた Javascript に少し問題があります。コードの目的は次のとおりです。

  1. 提供された .TXT ファイルから SKU のリストを読み取る
  2. 各行でデータを分割する
  3. オブジェクトごとに、提供された JSON API を参照して SKU に関する情報を取得します。
  4. この情報を 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();

            });


        };

    });

});

助けと提案をありがとう

4

2 に答える 2

0

コンソールでエラーを確認してください。何か問題が発生した場合、スクリプトが中断され、後のコードが実行されなくなります。

また、多くの HTTP リクエスト (ファイル内の行ごとに 1 つ) を作成しているように見えますが、これは遅くなる可能性があります。

準備が整う前にDOMに何かを追加すると、問題が発生します。すべてのコードを$(document).ready(function() { });

于 2013-04-25T09:04:42.850 に答える