2

指定されたdivでライブ結果を表示する検索フォームがあります(Jqueryで結果をフィルター処理してください

スクリプトを少し変更しました。ユーザーがチェックボックスの1つをチェックすると、結果divが自動的に更新されます。ロード関数はonChangeイベントによって処理されます。

指定された時間の後に結果スクリプトをロードするajaxを取得する方法はありますか?

たとえば、1つのチェックボックスを選択した場合、スクリプトは2秒待ってからスクリプトをロードする必要があります。このようにして、ユーザーはたとえば2つまたは3つのチェックボックスをオンにでき、選択を停止するとajaxがスクリプトをロードします。

- 編集 -

スクリプトのajax呼び出しは関数を介して実行されません。これは、次のコードです。

$(document).ready(function()
    {
        $('#category_filter').click(function()
        {

            var catArray = new Array();
            var j = 0;
            for(var i = 0; i < <?php echo $categories_count;?>; i++)
            {
                if(document.category_filter.filter_id[i].checked == 1)
                {
                    catArray[j] = document.category_filter.filter_id[i].value;
                    j++;
                }
            }
if(catArray[0])
            $.ajax(
            {
                type:    "POST",
                 url:     "index.php?action=ticket-search",
                data:    ({ filter: 'category',filter_id : catArray.toString() }),
                success: function(msg)
                {
                    $('#t_content').html(msg)
                                .hide()  
                                .fadeIn(700, function() {});  
                }
            });
          });
        });
      });
4

3 に答える 3

1

setTimeout を使用してみてください。

setTimeout("alert('hello')",2000);
于 2009-12-07T13:13:44.173 に答える
1

機能を使用してくださいsetTimout。そのようです:

var timer = setTimeout(yourFunction(), 2000);

ただし、新しいボタンがチェックされるたびにそのタイムアウトをクリアするイベントを必ず添付してください。そうしないと、Ajax を何度も起動することになります。

if(timer) { clearTimout(timer); }

var timer = setTimeout(yourFunction(), 2000);

于 2009-12-07T13:15:25.183 に答える
0

setTimeout() 呼び出しを使用して、数秒待つことができます。

  var t = setTimeout(myAjaxFunction, 2000); //wait two seconds

ユーザーが複数のチェックボックスをクリックできるようにする場合は、タイムアウトがすでに設定されているかどうかを確認する必要がある場合があります。これは、複数の AJAX 呼び出しがそれぞれ 2 秒待機するのを避けるためです。ロジックは次のようになります。

  1. ユーザーのクリック数
  2. タイムアウトはありますか?はいの場合、クリックを無視します
  3. Else AJAX 呼び出しのタイムアウトを設定します
于 2009-12-07T13:12:52.707 に答える