【问题标题】:Jquery loading content via ajaxJquery通过ajax加载内容
【发布时间】:2011-07-03 05:38:50
【问题描述】:

我有一个将用作导航栏的无序列表

<ul>
            <li><a href="content/index.html" class="selected">Home</a></li>
            <li><a href="content/about.html" class="nav_bubble">About</a></li>
            <li><a href="content/projects.html" class="nav_bubble">Projects</a></li>
            <li><a href="content/tutorials.html" class="nav_bubble">Tutorials</a></li>
</ul>

我有一些 javascript 可以将内容加载到 div 中

<script type="text/javascript">
        $(function(){
            $("div#navcontainer > ul > li > a").click(function(e){
                e.preventDefault();
                $.ajax({
                    url: e.currentTarget.href,
                    cache: false,
                    dataType: "html",
                    success: function(data) {
                        console.log(data);
                        $("#content").html(data);
                    }
                });
            });
        });
    </script>

所有这些都有效,问题是,当我从包含链接的内容文件夹中加载页面时会发生什么?它将您的浏览器发送到页面而不是将其加载到 div 中。如何将所有链接递归加载到内容 div 中,而不是将用户直接发送给它们?

【问题讨论】:

  • 我不清楚。你能提供你的html代码吗

标签: javascript html ajax jquery


【解决方案1】:

变化:

$("div#navcontainer > ul > li > a").click(function(e){

收件人:

$("div#navcontainer > ul > li > a, div#content a").live('click',function(e){

"Attach a handler to the event for all elements which match the current selector, now and in the future."

【讨论】:

  • 这似乎没有什么不同。
  • 你是否尝试添加 return false;到您的点击监听器的末尾?
  • 啊,我完全误解了你的问题。漫长的一天。您还需要在内容 div 中添加一个 live: $("div#content a").live('click',function(e){ /*load ajax into content div */...跨度>
  • 你可以合并监听器: $("div#navcontainer > ul > li > a, div#content a").live('click',function(e){ ...跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-26
  • 1970-01-01
  • 1970-01-01
  • 2013-11-24
  • 2011-04-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多