代码之家  ›  专栏  ›  技术社区  ›  GorillaApe

jQuery使用ajax获取JSON的最佳方法

  •  1
  • GorillaApe  · 技术社区  · 15 年前

    但是,在查看产品时,左侧有一些过滤器。当用户选择一个过滤器时,应该禁用另一个过滤器。

    例如,可能有男性和女性的夹克,但红色仅适用于女性,因此当用户单击男性时,应禁用红色过滤器。

    我想知道哪种方法是最好的。我不会使用ajax来实现这一点,只需加载该类别的所有产品并使用Javascript进行过滤,但我不能这样做,因为我必须使用ajax。

    所以我应该单独打个电话 .getJson('filters.php.....', currentFilters, callback) ? 然后决定哪些过滤器将被禁用?(这需要在数据库中执行更多查询)

    或者可以在结果页中包含如下内容:

    <script type=text/javascript>
        var data={jsondatagoeshere};
    </script> 
    

    我想知道是否所有的浏览器都会执行这段代码。还有其他建议吗?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Mouhannad    15 年前

    两者都能正常工作,但这取决于数据的大小。

    快速示例:

    html格式

    <ul>
      <li>Item1 <span>tag1, tag2</span></li>
      <li>Item2 <span>tag1, tag3</span></li>
    </ul>
    

    css

    span { display:none }
    

    jquery公司

    $(".filter").click(function() {
      $("ul > li").hide().filter(function() {
         return $("span", this).text().indexOf("tag1") >= 0;
      }).show();
    });
    

    这将立即过滤,无需多次调用数据库,但正如我所说,这取决于数据的大小。