JQuery-使用函数范围之外的变量

时间:2013-03-30 12:57:58

标签: javascript jquery

我有以下JQuery函数:

jQuery(function() {
                jQuery("#datepicker").datepicker({ 
                    onSelect: function(value) { 
                        alert('The chosen date is ' + value); 
                        currentDate= Math.round(Date.parse(value)/ 1000);

                    } 
                });

                // TODO
                // on select of a time value trigger the action 
                jQuery("#timepicker").timepicker({ 'timeFormat': 'H:i'}) 
                val = jQuery("#timepicker").val();
                currentTime= Math.round(Date.parse(val)/ 1000);

                var t1 = new Date(currentTime * 1000);
                var t2 = new Date(1364598000 * 1000);
                var t3 = new Date(t2.getFullYear(), t2.getMonth(),   t2.getDate(),
                                     t1.getHours(),    t1.getMinutes(), t1.getSeconds(), t1.getMilliseconds());
                console.log(t3);
                var timestamp = t3.getTime() / 1000;
                });

我的问题是:

在“ var t2 ”而不是固定值中,如何使用“ var currentDate ”?

更确切地说, 我想在t2中使用onSelect: function(value)中的

这意味着无论何时将新值分配给 currentDate ,我都希望它在 t2中传递。

3 个答案:

答案 0 :(得分:1)

只需在函数外声明:

            var currentDate; //declare outside function
            jQuery("#datepicker").datepicker({ 
                onSelect: function(value) { 
                    alert('The chosen date is ' + value); 
                    currentDate= Math.round(Date.parse(value)/ 1000);

                } 
            });

答案 1 :(得分:1)

jQuery(function() {

var currentDate;//declaration of currentDate 

          jQuery("#datepicker").datepicker({ 
                onSelect: function(value) { 
                    alert('The chosen date is ' + value); 
                    currentDate= Math.round(Date.parse(value)/ 1000);

                } 
            });

你可以这样声明。

答案 2 :(得分:0)

试试这个 -

jQuery(function() {
    var currentDate; //just declare it here.
    jQuery("#datepicker").datepicker({ 
        onSelect: function(value) { 
            alert('The chosen date is ' + value); 
            currentDate= Math.round(Date.parse(value)/ 1000);
        } 
    });

    // TODO
    // on select of a time value trigger the action 
    jQuery("#timepicker").timepicker({ 'timeFormat': 'H:i'}) 
    val = jQuery("#timepicker").val();
    currentTime= Math.round(Date.parse(val)/ 1000);

    var t1 = new Date(currentTime * 1000);
    var t2 = new Date(1364598000 * 1000);
    var t3 = new Date(t2.getFullYear(), t2.getMonth(),   t2.getDate(),
                         t1.getHours(),    t1.getMinutes(), t1.getSeconds(), t1.getMilliseconds());
    console.log(t3);
    var timestamp = t3.getTime() / 1000;
});

只需将其声明为外部,以便可以在datepicker方法之外访问它。