我希望有人对此有所了解。我正在使用FullCalendar(http://arshaw.com/fullcalendar/)插件。我在“prev”和“next”按钮中添加了其他功能,以触发其他日历上的事件。用户单击按钮转到上一个或下一个日期后,我希望该按钮禁用1-2秒。这就是我尝试过的。
'prev'和'next'按钮的源代码如下所示:
<td class="fc-header-left">
<span class="fc-button fc-button-next fc-state-default fc-corner-right" unselectable="on">
<span class="fc-text-arrow">›</span>
</span>
<span class="fc-button fc-button-prev fc-state-default fc-corner-left" unselectable="on">
<span class="fc-text-arrow">‹</span>
</span>
</td>
我的代码:
$('.fc-button-prev span').click(function(){
var spinner = createSpinner();
$('.fc-button-prev').addClass('fc-state-disabled');
$('.fc-button-next').addClass('fc-state-disabled');
$('.fc-button-prev span').onclick = null;
$('.fc-button-next span').onclick = null;
setTimeout(function() {
<% @doctors.each do |doctor| %>
$('#calendar_<%= doctor.id %>').fullCalendar('prev');
<% end %>
$('.fc-button-prev').removeClass('fc-state-disabled');
$('.fc-button-next').removeClass('fc-state-disabled');
spinner.stop();
}, 2000);
});
这不起作用,每次用户点击按钮时,都会出现新的微调器。如果用户在一秒内点击按钮3次,则会出现三个微调器。此外,在超时后,日历将向前或向后跳三天。
感谢您的帮助。
答案 0 :(得分:3)
我使用以下代码禁用它2秒钟:
$(function () {
$('.fc-button-prev').click(disableNextPrev);
$('.fc-button-next').click(disableNextPrev);
});
function disableNextPrev()
{
$('.fc-button-prev').addClass('fc-state-disabled');
$('.fc-button-next').addClass('fc-state-disabled');
myVar = setTimeout(function () {
// your custom code goes here
//....
$('.fc-button-prev').removeClass('fc-state-disabled');
$('.fc-button-next').removeClass('fc-state-disabled');
clearTimeout(myVar);
}, 2000);
}