jquery fullcalendar нажмите кнопку обратного вызова после загрузки - PullRequest
1 голос
/ 28 марта 2012

Я работаю с php, jquery и fullcalendar (http://arshaw.com/fullcalendar/)

Я установил функцию для события нажатия

$('#calendar').fullCalendar({
  eventClick: function(event) {
   myFunct(event);
  }
);

Теперь, когда я загружаюНа этой странице у меня есть 2 случая: - 1) с NULL $ _GET [idEvent], и это просто работает - 2) с $ _GET [idEvent] В этом случае я хочу, чтобы автоматически запускался обратный вызов, связанный с событием click моего полного календаря

Я решил немного изменить исходный код fullcalendar и добавить атрибут «id» для каждого отображаемого события, а затем написать следующий код:

if(isset($_GET['id'])){

    $id = $_GET['id'];
    echo '<script type="text/javascript">
            $("#idEvt'.$id.'").click();
          </script>';
} 

Теоретически я не считаю, что код неправильный..но это не работает ... вероятно, потому что загрузка календаря занимает много времени, а мой ** $ ("# idEvt '. $ id.'") ** не найден.

Кто-нибудь может мне помочь или уже использовал fullcalendar?


РЕДАКТИРОВАТЬ:

Спасибо!Вот решение:

Я добавил функцию jquery для получения переменных get из url

$.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];
  }
});

Затем в полной инициализации календаря

$('#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 Ответ

1 голос
/ 28 марта 2012

Я думаю, что вы ищете eventAfterRender callback.Это будет вызвано сразу после того, как событие будет помещено в его окончательную позицию в календаре.Вы можете проверить определенные значения, а затем решить, следует ли вызывать функцию. Нажмите здесь , чтобы увидеть параметры, принятые этим обратным вызовом.

...