JS如何在其外部访问变量的功能

时间:2014-08-31 01:38:50

标签: javascript jquery scope

这是我的代码:

var pickupdate;
$(function(){
  $.datepicker.setDefaults(
    $.extend( $.datepicker.regional[ '' ] )
  );
  $( '#pickupdate' ).datepicker( {
    dateFormat: 'yy-mm-dd',
    maxDate: "+3m",
    minDate: 0,
    onSelect: function() { 
      pickupdate = $(this).datepicker( 'getDate' ); 
      alert(pickupdate)
 }
  });
});
console.log(pickupdate)

alert(在函数内)有效,console.log(外部函数)显示pickupdateundefined。我做错了什么?

1 个答案:

答案 0 :(得分:1)

当你这样做时

$(function(){
    //Code here
});

您基本上将该功能绑定到jQuery的文档就绪函数,该函数在console.log(pickupdate)执行后调用。其中pickupdate未定义的原因是因为datepicker的onSelect函数尚未触发。

您可以尝试将其封装在一个函数中:

function LogValue() {
    console.log(pickupdate);
}

然后,您可以将该功能作为点击事件添加到按钮,并且当您更改datepicker值并单击按钮时,您将看到它将记录正确的值。 Fiddle Here