jQuery 1.8 を使用しています。
ユーザーが特定の製品に関する情報を取得するためにチェックできる一連のチェックボックスがあります。チェックボックスをオンにすると、関数が呼び出され、製品情報が div に読み込まれます。現在、関数は各クリックの直後に起動します。したがって、訪問者が 5 つのボックスすべてにチェックを入れると、ajax 呼び出しが 5 回行われます。
私が欲しいのは、訪問者がクリックをやめると、一定時間後に関数が起動することです。関数は 1 回だけ起動する必要があります。遅延の目的は、呼び出しの数を制限し、よりスムーズなユーザー エクスペリエンスを作成することです。
ここに私のHTMLがあります:
<input type='checkbox' class='SomeClass' data=prodid='1'> 1
<input type='checkbox' class='SomeClass' data=prodid='2'> 2
<input type='checkbox' class='SomeClass' data=prodid='3'> 3
<input type='checkbox' class='SomeClass' data=prodid='4'> 4
<input type='checkbox' class='SomeClass' data=prodid='5'> 5
<div id='ProductInfoDiv'></div>
これが私の疑似 JavaScript です。
// set vars
$Checkbox = $('input.SomeClass');
$ProductInfoDiv = $('div#ProductInfoDiv');
// listen for click
$Checkbox.click(getProductInfo);
// check which boxes are checked and load product info div
getProductInfo = function() {
// create list of product id from boxes that are checked
var QString = $Checkbox.filter(":checked");
// LOAD THE PRODUCT DIV
$ProductInfoDiv.load('SomePage.cfm?'+QString);
}
では、遅延はどこに置くのでしょうか。関数が一度だけ起動するようにするにはどうすればよいですか?