加载后jquery fullcalendar点击回调

时间:2012-03-28 01:08:03

标签: php jquery click fullcalendar

我正在使用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。 谢谢你的建议!!!

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找 eventAfterRender 回调。这将在事件被放置在日历上的最终位置后立即调用。您可以检查某些值,然后决定是否调用函数。 Click Here查看此回调接受的参数。