我需要阻止点击链接,比如让我们说2秒钟。
以下是http://jsbin.com/orinib/4/edit
的示例当您查看渲染模式时,您会看到下一个和上一个链接。当您单击下一步时,它会以良好的过渡进行滑动。但是,如果多次单击,则没有转换类型,这是预期的。但我的问题是:这是如何防止点击下一个链接约2秒(或转换发生所需的时间),以便无论发生什么样的转换。 这是我试图使用的,但没有用:
function(){
var thePreventer = false;
$("#next").bind($(this),function(e){
if(!thePreventer){
thePreventer = true;
setTimeout(function(){
thePreventer = false;
}, 2000);
}else{
e.preventDefault();
}
});
}
我从这里得到"Disable" a link temporarily when clicked?我想。我相信我无法通过此代码实现此效果(尽管它适用于其他链接)。我相信这是因为循环插件获得了该链接,我知道我必须绑定/挖掘插件的这个功能。请注意:这段代码可能不起作用我只是用它来表明我尝试过它并没有用,你可以重复使用它,如果你必须或给我你自己的东西。
如果可以,请帮忙。
修改: 正如 mrtsherman 提出这个简单而优雅的 ANSWER :http://jsfiddle.net/LCWLb。
答案 0 :(得分:2)
看看cycle options page。有很多方法可以做到这一点。我会考虑在onPrevNextEvent上使用寻呼机事件。您可以指定回调函数。
$('#slideshow').cycle({
pager: '#nav',
onPrevNextEvent: function(isNext, zeroBasedSlideIndex, slideElement) {
//disable controls
},
after: function(currSlideElement, nextSlideElement, options, forwardFlag) {
//reenable controls
}
});
答案 1 :(得分:0)
以下内容会暂时阻止幻灯片显示运行时的点击次数as shown in this fiddle:
$.fn.extend({
delayClick: function(callback) {
this.bind('click', function(e) {
$self = $(this);
if( $self.hasClass('disabled') ) {
$('#log').append('<p>click prevented on '+$self.attr('id')+'</p>');
}
else {
$self.addClass('disabled');
callback.call(this, [arguments]);
setTimeout(function() {
$self.removeClass('disabled');
}, 1000);
}
return false;
});
}
});