Javascript 功能早期触发
我试图从函数中回调一个值,但是,回调总是未定义的,因为jQuery日期选择器从来没有机会设置var sdate,因此提醒我它未定义。我真的需要你的帮助,但这个问题似乎解决不了Javascript 功能早期触发,javascript,jquery,html,jquery-ui,Javascript,Jquery,Html,Jquery Ui,我试图从函数中回调一个值,但是,回调总是未定义的,因为jQuery日期选择器从来没有机会设置var sdate,因此提醒我它未定义。我真的需要你的帮助,但这个问题似乎解决不了 var sdate function test() { select_date() alert(sdate) } function select_date() { $('#dd').dialog({ autoOpen: true, modal:
var sdate
function test() {
select_date()
alert(sdate)
}
function select_date() {
$('#dd').dialog({
autoOpen: true,
modal: true,
overlay: {
opacity: 0.5,
background: 'black'
},
title: "title",
height: 265,
width: 235,
draggable: false,
resizable: false
}); //end of dialog
var x
$('#d1').datepicker({
onSelect: function() {
sdate = $(this).val();
$("#dd").dialog("close");
}
});
return sdate
}
这对你有什么好处
$('#d1').datepicker({
onSelect: function() {
sdate = $(this).val();
//set value to the global variable (although not the best approach)
$("#dd").dialog("close");
}
});
您根本没有设置
sdate
。我想你可能是想做sdate=select_date()代码>?sdate
在您执行alert(sdate)
时实际上是未定义的。但即使是x
也是undefined
,因为它只在onSelect
事件回调中设置。我修改了输入错误。真正的问题是函数测试中的警报框在select_date有机会设置sdate之前提前触发variable@JasonKelly:无论该函数返回的是从未被您的alert
使用的函数,也永远不会设置为-例如:没有任何地方可以使您sdate=xValue
。您应该尝试的是alert(select_date)
。sdate设置得很好,但是,我想在函数测试中检查sdate的值,如果它为null{do something},如果它不是{do something}@JasonKelly,如果这不是你想要的答案,你为什么要把它标记为答案?@Alexander:我怀疑这是因为他根据我在这里试图说的内容更新了(模糊的)问题中的代码。英雄联盟