2012-03-28 2 views
1

Я работаю с PHP, JQuery и fullcalendar (http://arshaw.com/fullcalendar/)JQuery fullcalendar нажмите Обратный вызов после загрузки

Я выставиться функцию на событие щелчка

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

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

Я решил слить ghtly изменить fullcalendar источника и добавить «ID» Attr на каждую оказанную событии, а затем записать этот код:

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

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

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

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


EDIT:

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

Я добавить функцию JQuery, чтобы принести получить переменные из 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]; 
    } 
}); 

Затем в 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

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

+0

спасибо Бала за предложение! :) – Danilo

Смежные вопросы