我所做的很简单,所以我可能做错了。
我有一个简单的选择框作为表的过滤器。我有一个重置过滤器的按钮。
$("#package").live('change', function()
{
filterPackage = $("#package").val();
$.ajax({url: 'ajaxAllGroups.php?filterPackage='+filterPackage, cache: false, success: function(main)
{
$('#fullPartsList').html(main);
}});
});
function unfilter()
{
$.ajax({url: 'ajaxAllGroups.php?filterPackage=0', cache: false, success: function(main)
{
$('#fullPartsList').html(main); // Send ajax content to table
$('#package').val(0); // Reset option to default
$("#package").change(); // Force visual change to select box
}});
}
正如你所看到的,重置按钮将选择选项设置回零,我在选择框上触发change()函数,使更改应用于选择框。
这一切都有效,但仅视觉更改会触发上面的实时更改函数,从而导致第二次不必要的ajax调用。
我曾想过用true/false变量来做这件事,让它运行一次,但无法让变量在正确的时间设置true/false,但我相信有一种更简单的方法。
提前谢谢。