需要根据窗口位置哈希重新加载JSON

时间:2016-12-15 15:28:24

标签: jquery json

我从JSON数据库中提取并在DIV中显示基于其ID的产品。如果ID匹配,它将在DIV中显示正确的项目及其内容。

我尝试更改逻辑,让它根据产品UPC是否与window.location.hash匹配来显示产品。这适用于第一个项目,但不适用于其他项目。到目前为止没有运气。希望有人可以帮助我解决这个问题。以下是我的代码谢谢。

var itemName = '';
var itemUPC = '';
var itemDesc = '';
var itemOZ = '';
var itemImage = '';

var compareHash = window.location.hash;
var compareUPC = '';

$.each(json, function(i, item) {

  compareUPC += '#' + item.itemFullUPC;

  if (compareHash == compareUPC) {

    itemName += '<h1>' + item.itemName + '</h1>';
    itemUPC += item.itemFullUPC;
    itemDesc += '<p>' + item.itemDescription + '</p>';
    itemOZ += '<h2>' + item.itemPackSize + '</p>';
    itemImage += '<img class="img-responsive img-rounded center-block" src="' + item.imageURL + '">';
  }

  $('#productTitle').html(itemName);
  $('#productUPC').html(strippedUPC);
  $('#productDescription').html(itemDesc);
  $('#productOZ').html(itemOZ);
  $('#productImage').html(itemImage);


});

1 个答案:

答案 0 :(得分:1)

您可能想要onhashchange

if ("onhashchange" in window) {
    alert("The browser supports the hashchange event!");
}

function locationHashChanged() {
     compareUPC += '#' + item.itemFullUPC; // or whatever you need to test here
     if (compareHash == compareUPC) {
        getJSON();
    }
}

// window.onhaschange=locationHashChanged; // or     
$(window).on("hashchange",locationHashChanged);