2014-01-27 3 views
1

Я работаю с сценарием fullcalendar. Когда я загружаю календарь, я хочу проверить, установлены ли некоторые переменные. Я попытался это:Если оператор внутри функции jQuery не распознан

$(document).ready(function() { 
    var calendar = $('#calendar').fullCalendar({ 

    if(mes != '') { 
     mes=1; 
    }, 

    editable: false, 
    header: { 
     left: 'prev,next ', 
     center: 'title', 
     right: 'month,agendaWeek,agendaDay' 
    }, 

    defaultView: 'agendaDay', 
    buttonText: { 
     today: 'hoy', 
     month: 'mes', 
     week:  'semana', 
     day:  'dia' 
    }, 

    eventClick: function(calEvent, jsEvent, view) { 
     //al hacer clic en el evento, si estamos en el mes o semana que vaya al día 
     var vista=calendar.fullCalendar('getView').name; 

     if (vista=="month" | vista=="agendaWeek") { 
      //si estamos en vista de mes o semana, cambiamos a la del día 
      calendar.fullCalendar('changeView', "agendaDay"); 
      calendar.fullCalendar('gotoDate', calEvent.start); 
     } else { 
      //si estamos en el vista de día 
      var color =calEvent.color; 
      var id_evento=calEvent._id; 

      document.form2.id_eve.value = id_evento; 
      document.forms["form2"].submit(); 
      var ano=calEvent.year; 
      var mes=calEvent.month; 
      var dia=calEvent.day; 
     } 
    } 
    }); 
}); 

Но это не работает, то утверждение:

if(mes != '') { 
    mes=1; 
}, 

Он говорит, что я синтаксическая ошибка. Как я могу исправить это и проверить, установлены ли мои переменные? Я также пробовал:

if(typeof mes != 'undefined') 

Но это дает ту же ошибку.

+0

Я не имею понятия, как этот оператор может быть неправильным, потому что он выглядит корректно для меня, но другой оператор if: if (vista == "month" | vista == "AgendaWeek") {', должен использовать' || 'вместо' | ' – jonhopkins

+2

Объект [литералы] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Values,_variables,_and_literals#Object_literals)/[initialisers] (http: //www.ecma- international.org/ec ma-262/5.1/# sec-11.1.5), так как '{...}' передается 'fullCalendar()', не поддерживает операторов. Они должны содержать только пары ключ/значение. –

+0

спасибо, Это было сообщение об ошибке здесь, все же я получаю ошибку, где у меня есть первый if = (@jonhopkins –

ответ

5

Вы пытаясь использовать оператор if в середине данных. Это не сработает.

Вы можете достичь того же эффекта таким образом:

var calendar = $('#calendar').fullCalendar({ 
    'mes': (typeof(mes) === 'undefined') ? 1 : mes, 

    // ... 
+0

Я думаю, что вы на что-то там (например, с точки зрения конечной цели OP, чего я не мог понять в время, которое я ему дал). –

+0

Я хочу инициализировать календарь в определенную дату после отправки POST формы, но если он загружает календарь в первый раз, я хочу, чтобы он отображал текущую дату. календарь не загружается @TJCrowder –

+0

@MarianaHernandez: Как я уже сказал в своем ответе, вам нужно будет использовать один из обратных вызовов календаря. Синтаксис Paul и я указываем, что вы действительны (а не почему календарь не загружается), но я подозреваю, что вы действительно хотите обработать обратный вызов, который делает календарь, когда он загружается (я не знаю этого плагина) и обрабатываю это там. –

3

Вы не можете поместить if в инициализаторы объектов.

Непонятно, где и когда вы хотите сделать эту проверку, но в основном это не может быть в инициализаторе объекта, который вы передаете в fullCalendar. Это может быть код перед этим, или код в одном из обратных вызовов.

Если есть свойство в объекте, который вы создаете, что вы хотите, чтобы одно значение, если mes является != '' и другое значение, в противном случае, вы можете сделать:

thePropertyName: mes != '' ? "value1" : "value2", 
1

Вы не можете иметь, если есть, вы можете сделать это за пределами инициализаторе, или просто использовать что-то вроде mes != '' ? mes : 1,

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