如果jQuery函数内的语句无法识别

时间:2014-01-27 13:47:41

标签: jquery html twitter-bootstrap fullcalendar

我正在使用fullcalendar脚本。当我加载日历时,我想检查是否设置了一些变量。我试过这个:

$(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')

但这会产生同样的错误。

3 个答案:

答案 0 :(得分:5)

您尝试在数据中间使用if语句。那不行。

你可以用这种方式达到同样的效果:

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

  // ...

答案 1 :(得分:3)

您不能将if语句放在对象初始值设定项中。

目前还不清楚您要在何时何地进行此检查,但基本上它不能在您传入fullCalendar的对象的初始值设定项中。它可以在之前的代码中,或者在其中一个回调中编码。

如果您正在创建的对象中有一个属性,您希望在mes!= ''时给出一个值,否则为其他值,您可以做的是:

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

答案 2 :(得分:1)

你不能拥有if,你可以在初始化程序之外执行,或只使用mes != '' ? mes : 1,

之类的东西