当我在日历上进行选择并添加一个事件时,它会将信息发送到我的 PHP 脚本,并且该事件按预期放置在数据库中。伟大的!
问题是当我选择另一个日期并添加事件(没有刷新)时,它在 MYSQL 数据库中添加了两次事件。不太好!
这会随着点击次数的增加而不断增加,直到进行刷新。此外,除了“0000-00-00 00:00:00”之外,添加的“额外”事件没有时间放置在数据库中,因此它在输出时看起来是正确的。我只是缺少一些简单的东西吗?我做错了什么?
<script>
$(document).ready(function(){
select: function(start, end, allDay){
$("popup").show();
$(".title").focus();
var start = Date.parse(start) / 1000;
var end = Date.parse(end) / 1000;
var allDay = allDay:
$("submitForm").click(function(){
var title = $(".title").val();
var description = $("description").val();
var team_id = <?php echo $id ?>;
if(title != "" || title != " "){
$.post("script.php", {...}, function(){
$(".title").val("");
$(".description").val("");
start = "";
end = "";
title = "";
description = "";
team_id = "";
allDay = "";
calendar.fullCalendar('unselect');
calendar.fullCalendar('refetchEvents');
});
}else{
alert("You must enter a title");
}
$(".popup").hide();
});
}
});
</script>
显然这不是整个 JS/Jquery,但这才是最重要的。我错过了什么?提前致谢。感谢您的帮助!
最佳答案
在这里,您可以在选择日期时重复附加点击事件。
select: function(start, end, allDay){ $("submitForm").click(function(){}); })
因此,如果您的
$("popup")
存在于document.ready
上,只需将这行代码放在外面 插件的定义无论元素是否具有 display:none 属性,这里都会找到提交表单并附加点击事件:
$(document).ready(function() { $("submitForm").click(function(){}); $('#calendar').fullCalendar({ select:select: function(start, end, allDay){}) }) })
如果您添加
$("popup")
元素,稍后您必须在 jQuery 脚本中动态绑定(bind)点击事件,但要小心将该代码放在它会出现的位置只执行一次。
关于php - fullcalendar - 选择回调函数 - 不会在新选择时清除事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8619723/