我正在使用 jQuery 1.8。
我有一系列复选框,用户可以检查这些复选框以获取有关特定产品的信息。选中该框时,将调用一个函数并将产品信息加载到 div 中。目前,该功能在每次点击后立即触发。因此,如果访问者选中所有五个框,则将进行五次 ajax 调用。
我想要的是一旦访问者停止点击,该功能会在一段时间后触发。该函数应该只触发一次。延迟的目的是限制调用次数,创造更流畅的用户体验。
这是我的 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);
}
那么,我该把延迟放在哪里呢?如何确保该功能只触发一次?