我正在使用php,jquery和fullcalendar(http://arshaw.com/fullcalendar/)
我在点击事件
上设置了一个功能$('#calendar').fullCalendar({
eventClick: function(event) {
myFunct(event);
}
);
现在,当我加载此页面时,我有2个案例: - 1)使用NULL $ _GET [idEvent],这只是工作 - 2)使用$ _GET [idEvent]在这种情况下,我希望自动启动与fullcalendar的click事件相关联的回调
我决定稍微修改fullcalendar源并在每个呈现的事件上添加“id”attr,然后编写此代码:
if(isset($_GET['id'])){
$id = $_GET['id'];
echo '<script type="text/javascript">
$("#idEvt'.$id.'").click();
</script>';
}
理论上我认为代码不对..但它不起作用......可能是因为加载日历需要很长时间才能加载我的** $(“#idEvt'。$ id。' “)**未找到。
任何人都可以帮助我或已经使用过fullcalendar吗?
编辑:
谢谢!这是解决方案:
我添加了一个jquery函数来从url
中获取get变量$.extend({
getUrlVars: function(){
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
},
getUrlVar: function(name){
return $.getUrlVars()[name];
}
});
然后在fullcalendar初始化
$('#calendar').fullCalendar({
eventClick: function(event) {
myFunct(event);
},
eventAfterRender: function(event, element, view ) {
var idEvt = $.getUrlVar('id');
if(event.id==idEvt){
myFunct(event);
}
}
这种方式没有必要修改fullcalendar源代码或使用php。 谢谢你的建议!!!
答案 0 :(得分:1)
我认为您正在寻找 eventAfterRender 回调。这将在事件被放置在日历上的最终位置后立即调用。您可以检查某些值,然后决定是否调用函数。 Click Here查看此回调接受的参数。