我几个小时以来一直在努力解决这个问题,即使在阅读Stack上的几个例子之后我也无法实现这一点.我是JS的新手并没有帮助.
我正在尝试从Google Geocoder API检索有关地址的信息,然后将该对象传递给另一个函数.根据我的阅读,我理解我用来检索信息的函数是异步的,因此我需要使用回调函数来读取它.但是,当我尝试这样做时,我的控制台仍然会返回"未定义".我知道这些信息来自Google,因为当我在结果对象上使用console.log()时它会正确返回.
无论如何,这是我正在使用的:
function onSuccess(position) {
getLocationData(position, function(locationData) {
console.log(locationData);
});
}
function getLocationData(position, callback) {
geocoder = new google.maps.Geocoder();
var location = 'Billings,MT';
if( geocoder ) {
geocoder.geocode({ 'address': location }, function (results, status) {
if( status == google.maps.GeocoderStatus.OK ) {
return results[0];
}
});
}
callback();
}
Run Code Online (Sandbox Code Playgroud)
就像我提到的那样,我得到的只是'未定义'.如果我将'console.log(results [0])'放在getLocationData()返回上方,则返回的对象是正确的.任何帮助将非常感激.
我的页面上有几个带有'checkbox'类的元素.单击时,将检查相应的复选框输入.但是,我需要让JQuery在页面首次加载时检查checkbox元素是否处于活动状态,并在此时相应地检查复选框输入.
由于我的页面上有多个"复选框"类,我以前使用过'this'选择器并且工作正常,但我不知道如何使用我的条件页面加载来执行此操作而不使用我使用的.click操作之前.这是我正在尝试做的工作:
if($('.checkbox').hasClass('active')) {
$('[name="'+$(this).attr('rel')+'"]').prop('checked', true);
}
Run Code Online (Sandbox Code Playgroud)
显然,'this'选择器不知道我指的是什么.有没有更好的方法呢?因为它通过一堆元素检查,而不仅仅是一个我难倒.谢谢!