【发布时间】:2011-01-09 10:57:43
【问题描述】:
为了将很长的选项元素列表添加到选择列表中,我在单击时添加它们。我想防止多次添加该列表。我怎样才能做到这一点?
$("#skiresort").click(function(){
$("#skiresort").load("/v3/inc/review.php");
});
【问题讨论】:
标签: jquery event-handling jquery-click-event
为了将很长的选项元素列表添加到选择列表中,我在单击时添加它们。我想防止多次添加该列表。我怎样才能做到这一点?
$("#skiresort").click(function(){
$("#skiresort").load("/v3/inc/review.php");
});
【问题讨论】:
标签: jquery event-handling jquery-click-event
有一种方法只执行一次事件处理程序:.one():
$("#skiresort").one('click', function(){
$("#skiresort").load("/v3/inc/review.php");
});
【讨论】:
Felix 的答案非常适合 jQuery,我添加这个只是为了展示一个通用的 JavaScript 技术:
function runOnce(f) {
var called = false;
return function() {
if (!called) {
called = true;
return f.apply(this, arguments);
}
};
}
现在你可以像这样使用它了:
var myNewFunction = runOnce(myFunction); // this does not run "myFunction", but returns a new one that will only run once.
myNewFunction(1, 2, 3); // runs the "myFunction" and returns whatever it returns
myNewFunction(1, 2, 3); // doesn't do anything, just returns undefined
【讨论】: