所以,我有这个小功能:
carousel_controls_buttons.live('click', function(e){
setTimeout(function(){
info_board_span.append(info_board_description);
e.preventDefault();
}, 450);
});
我要做的是在两次,三次快速点击后停止追加info_board_description
次。当我这样做时,这个数据不止一次附加,我有内容重复。我怎么能停止这一段时间,比如说。这450ms?谢谢你的帮助。
答案 0 :(得分:3)
使用布尔值来控制它。
var flag = true;
carousel_controls_buttons.live('click', function(e){
e.preventDefault();
if (flag) {
setTimeout(function(){
info_board_span.append(info_board_description);
flag = true;
}, 450);
flag = false;
}
});
答案 1 :(得分:2)
您可以使用clearTimeout
功能:
var t = '';
carousel_controls_buttons.live('click', function(e){
clearTimeout(t);
t = setTimeout(function(){
info_board_span.append(info_board_description);
e.preventDefault();
}, 450);
});
请注意,live
方法已弃用,您应该使用on
方法。
答案 2 :(得分:1)
虽然其他答案应该有效,但我想向您介绍debounce
&的概念。 throttle
。
http://benalman.com/projects/jquery-throttle-debounce-plugin/是一个可用于实现所需内容的插件,即确保每x秒仅执行一次函数。
节气门与去抖动
限制和去抖动都会限制执行a 功能,但适合特定情况?
嗯,简单地说:虽然限制限制执行a 每个延迟毫秒的功能不超过一次,去抖动 保证该功能只能一次执行 (给定一个指定的阈值)。
carousel_controls_buttons.live('click', function(e) {
$.debounce(450, function() {
info_board_span.append(info_board_description);
e.preventDefault();
});
});
答案 3 :(得分:0)
在那里计算一下var count = 0;在命中时递增并检查条件如果count == 1如果不离开则附加它
答案 4 :(得分:0)
实现这一目标有一个事件:
carousel_controls_buttons.one('click', function() {
setTimeout(function(){
info_board_span.append(info_board_description);
e.preventDefault();
}, 450);
});