【问题标题】:load div inside another div at the same page在同一页面的另一个 div 中加载 div
【发布时间】:2015-02-22 22:26:55
【问题描述】:

我有这个小代码,它允许用户单击下拉菜单,然后使用 AJAX 在 div 中打开内容。内容位于同一页面中,因此目标是将内容 div 加载到另一个 div 中。问题是当我加载内容时它会加载页面本身(见下面的打印)

html

<div class="container">
  <div class="row"> 
    <div class="col-md-3" >
      <div id='cssmenu'>
        <ul>
          <li class='active'><a href='#' data-url="http://localhost/bioinformatica/Main_page/Quick_search.html#qhelp" ><span>Home</span></a></li>
          <li class='has-sub'><a href='#'><span>About</span></a>
             <ul>
                <li><a href='#' data-url="http://localhost/bioinformatica/Main_page/Quick_search.html#qhelp"><span>Project</span></a></li>
                <li class='last'><a href='#' data-url="#homePage> *"><span>Team</span></a></li>
             </ul>
          </li>
          <li class='last'><a href='#' data-url="http://localhost/bioinformatica/Main_page/Main_page%20(5)#cssmenu"><span>News</span></a></li>
          <li class='has-sub'><a href='#'><span>Search</span></a>
             <ul>
                <li><a href='#'><span>Quick Search</span></a></li>
                <li><a href='#'><span>Advanced Search</span></a></li>
                <li class='last'><a href='#'><span>Structure Search</span></a></li>
             </ul>
          </li>
          <li class='has-sub'><a href='#'><span>Tools</span></a>
             <ul>
                <li><a href='#'><span>NAMS</span></a></li>
                <li><a href='#'><span>Smiles Calculator</span></a></li>
                <li class='last'><a href='#'><span>Empty</span></a></li>
             </ul>
          </li>
        </ul>
      </div> 
    </div>

    <div class="col-md-9">
      <div id="tabs">
        <ul class="nav nav-tabs" id="prodTabs">
          <li class="active"><a class="clickableLink" href="#tab_quick" data-url="http://localhost/bioinformatica/Main_page/Quick_search.html#qhelp">Quick Search</a></li>
          <li><a class="clickableLink" href="#tab_advanc" data-url="#">Advanced Search</a></li>
          <li><a class="clickableLink" href="#tab_struct" data-url="something3.txt">Structure Search</a></li>
        </ul>
        <div class="tab-content">
          <div id="tab_quick" class="tab-pane active"></div>
          <div id="tab_advanc" class="tab-pane active"></div>
          <div id="tab_struct" class="tab-pane active"></div>
        </div>
      </div>
    </div>

  </div>
  <div class="clearfix visible-lg"></div>
</div>
</div>

<div id="all_divs">
  <div id="homePage"><p>HOME PAGE</p></div>
      <div id="biogPage"><p>BIOG PAGE</p></div>
      <div id="musicPage"><p>MUSIC PAGE</p></div>
      <div id="photosPage"><p>PHOTOS PAGE</p></div>
  </div>

  <script>$('#homePage,#biogPage, #musicPage, #photosPage, #shopPage').hide();</script>  

javascript

(function($) {

  $(document).ready(function() {
    $('#cssmenu ul ul li:odd').addClass('odd');
    $('#cssmenu ul ul li:even').addClass('even');

    $('#cssmenu > ul > li > a').click(function() {
      $('#cssmenu li').removeClass('active');
      $(this).closest('li').addClass('active');
      var checkElement = $(this).next();

      if ((checkElement.is('ul')) && (checkElement.is(':visible'))) {
        $(this).closest('li').removeClass('active');
        checkElement.slideUp('normal');
      }

      if ((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
        $('#cssmenu ul ul:visible').slideUp('normal');
        checkElement.slideDown('normal');
      }

      if ($(this).closest('li').find('ul').children().length == 0) {
        return true;
      } else {
        return false;
      }
    });
  });

})(jQuery);


//para abrir cada bootstrap tab com ajax
$(document).ready(function() {

  $('#tab_quick').load($('#tabs .active a').attr("data-url"), function(result) {
    $('.active a').tab('show');
  });

  $('#tabs a').click(function(e) {
    e.preventDefault();

    var url = $(this).attr("data-url");
    var href = this.hash; /*vai buscar a parte do href que contem hash(#) , neste caso para o primeiro vai buscar #home*/
    var pane = $(this);

    // ajax load from data-url
    $(href).load(url, function(result) {
      pane.tab('show');
    });

  });

});


$(document).ready(function() {

  $('#cssmenu a').click(function(e) {
    e.preventDefault();

    var url = $(this).data('url');
    var pane = $(this);

    // ajax load from data-url
    $('#tabs').load(url, function(result) { // load the content directly to #tabs     
      pane.tab('show'); // display the tab
    });
  });

});

当我在菜单中单击例如新闻时,它会加载完整的页面而不是 div。当我点击 About->Team

时也会发生这种情况

【问题讨论】:

  • 您应该始终使用正确的缩进来格式化您的代码,否则很难阅读。
  • 谢谢,我是新手。
  • tldr; $('#page1').load('http://page2 #partyouwant')
  • 不应该 data-url 是例如:data-url="http://localhost/bioinformatica/Main_page/Quick_search.html #qhelp" 查看 URI 和哈希之间的空格
  • 虽然这是你提出问题时最不应该做的事情,但实际上这是你应该为自己的利益而做的事情。如果您看不到代码的结构,您希望如何在代码中找到问题。特别是当您是初学者时,您应该非常注意正确的格式。

标签: javascript jquery


【解决方案1】:

刚刚将data-url="http://localhost/bioinformatica/Main_page/Quick_search.html#qhelp"改为

data-url="http://localhost/bioinformatica/Main_page/Quick_search.html #qhelp"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-24
    • 1970-01-01
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 2014-01-26
    • 2014-02-12
    • 1970-01-01
    相关资源
    最近更新 更多