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

简单jqueryajax问题

  •  1
  • Radu  · 技术社区  · 14 年前

    我有这样的菜单,但加价不一定要这样。

    <div id="menu">
     <ul>
      <li><a href="#item1">Item 1</a></li>
       <ul>
       <li><a href="#subitem1">Subitem 1</a></li>
       </ul>
      <li><a href="#item2">Item 2</a></li>
     </ul>
    </div>
    

    $(document).ready(function() {
      $('#menu li').click(function(){
          $('#content').load('content.txt');
      });
    });
    

    现在,如何传递要加载到“内容”中的内容页?提前谢谢!

    5 回复  |  直到 14 年前
        1
  •  3
  •   joelpittet    14 年前

    使用事件的preventDefault()方法阻止单击转到该页,请使用实际转到加载到#content div中的该页的链接的href。

    $(document).ready(function() {
        $('#menu a').click(function(e){
            $('#content').load($(this).attr('href'));
            e.preventDefault();
        });
    });
    
    
    <div id="menu">
     <ul>
      <li><a href="page1.html">Item 1</a></li>
       <ul>
       <li><a href="subpage1.html">Subitem 1</a></li>
       </ul>
      <li><a href="page2.html">Item 2</a></li>
     </ul>
    </div>
    
        2
  •  2
  •   Russ Cam    14 年前

    你可以用很多方法来做。基本上,您需要将一个URL与每个 <li> 项目。

    举几个例子,您可以将它们存储在jQuery缓存中的JavaScript数组中。 $(selector).data ,在每个 < 元素,作为 <li> 元素。

        3
  •  1
  •   AlexCuse    14 年前

    jQuery UI's tab feature 来处理这件事。它可能会退化得更好。

    如果需要手动执行此操作,最简单的方法可能是向锚定添加ID或rel属性,然后使用该属性确定要加载的内容页。

    您可以使用“$(this).attr('blah');”在函数中访问这些属性。

        4
  •  1
  •   Ian Wood    14 年前

    $('#menu a').click(function(){
        $('#content').load($(this).attr('href') + ' #content');
    });
    

    应该会成功的。

        5
  •  1
  •   Ian Wood    14 年前