简体   繁体   中英

Load dropdown menu content in div using AJAX

My goal is to click in dropdown menu (div id=cssmenu) elements and display data in the using AJAX , so i made a small js code but i don't know how can i make it to load in the div i mentioned and erase the content that div displayed before.

html

<body>

<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='#'><span>Project</span></a></li>
         <li class='last'><a href='#'><span>Team</span></a></li>
      </ul>
   </li>
   <li class='last'><a href='#'><span>News</span></a></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>

</body>
</html>

Javascript

$( document ).ready(function() {

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

    var url = $(this).attr("data-url");
    var href = this.hash; 
    var pane = $(this);

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

});
});

For example in the Menu, when i click Home i would like it to load it's data-url attr in the div id=tabs , ie, replacing all the contents by Home data-url. Thanks !

You can try the following:

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

        var url = $(this).data('url'); // this is the correct syntax
        var pane = $(this);

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM