0

我正在我网站的侧边栏上设置一个地理搜索栏。当用户单击链接以允许地理位置时,我试图在侧边栏的标题中显示他们的邮政编码。这很好用,但在初次点击时,您必须刷新页面才能显示邮政编码。

我目前设置它的方式,它在单击时返回“未定义”,然后在刷新时它显示正确的 zip。我假设我必须设置某种等待功能或其他东西,以便替换标题文本的功能在定义邮政编码之前不会触发。

有任何想法吗?谢谢!

这是javascript:

// Set sessionStorage paramater on click
$('#findLocations').click(function() {
    jQuery.ajax({
      type: "GET",
      dataType: "html",
      url: "/search/georesults.html",
      success: function(closestLocation) {
        jQuery('.result').html(closestLocation);
      } // end success
    }); // end ajax
    $('.resultHeader').html('Stores nearest <div class="zip">' + userZip + '</div>');
    sessionStorage.UseIP = "Yes"
});

// Check for UseIP and display nearest locations if set
if ( sessionStorage.UseIP == "Yes" ){
    jQuery.ajax({
      type: "GET",
      dataType: "html",
      url: "/search/georesults.html",
      success: function(closestLocation) {
        jQuery('.result').html(closestLocation);
      } // end success
    }); // end ajax
    $('.resultHeader').html('Stores nearest <div class="zip">' + userZip + '</div>');
}
4

1 回答 1

1

我会将结果标头更改移动到相同的成功回调中,如下所示:

// Set sessionStorage paramater on click
$('#findLocations').click(function() {
    $.ajax({
      type: "GET",
      dataType: "html",
      url: "/search/georesults.html",
      success: function(closestRep) {
        $('.result').html(closestRep);
        $('.resultHeader').html('Stores nearest <div class="zip">' + userZip + '</div>');
      } // end success
    }); // end ajax

    sessionStorage.UseIP = "Yes"
});

// Check for UseIP and display nearest locations if set
if ( sessionStorage.UseIP == "Yes" ){
    $.ajax({
      type: "GET",
      dataType: "html",
      url: "/search/georesults.html",
      success: function(closestLocation) {
        $('.result').html(closestLocation);
        $('.resultHeader').html('Stores nearest <div class="zip">' + userZip + '</div>');
      } // end success
    }); // end ajax

}

请注意,添加一个单独的函数来同时更改两者可能是值得的。您可以将其用作回调,并避免维护 2 段代码。

于 2014-04-10T19:30:41.607 回答