您好我正在尝试从DIV构建导航,它使用jQuery
AJAX函数来加载页面.
我想要的是当用户点击页面上的说明,然后是仪表板或他们所在的活动页面时,所谓的活动页面已被删除并添加到新单击的一个
<div class="dijit active" id="dijit_dashboard">Dashboard</div> <div class="dijit" id="dijit_pages">Pages</div>
jQuery代码并不能完成这项工作.
$("#dijit_pages").click(function() { $("#dijit_utm").load('index.html'); $(this).addClass("active"); });
但我不确定如何从所有其他人中删除课程.
解决方法
$(function() { $(".dijit").live("click",function() { $(".dijit").removeClass("active"); // remove active class from all $(this).addClass("active"); // add active class to clicked element $("#dijit_utm").load('index.html'); }); });
使用此方法将意味着为每个链接加载相同的页面.如果您需要为每个项目加载页面,那么以下代码将更加贴切:
HTML
<div class="dijit active" id="dijit_dashboard"><a href="dashboard.html">Dashboard</a></div> <div class="dijit" id="dijit_pages"><a href="pages.html">Pages</a></div>
jQuery的
$(function() { $(".dijit").live("click",function(e) { e.preventDefault(); $(".dijit").removeClass("active"); // remove active class from all $(this).addClass("active"); // add active class to clicked element var href = $(this).find("A").attr("href"); $("#dijit_utm").load(href); }); });
UPDATE
这个旧答案似乎仍然得到了相当稳定的观点,所以这里是使用最新jQuery方法的更新答案,因为live()自1.7版以来已被弃用:
$(document).on('click','.dijit',function(e) { e.preventDefault(); var $el = $(this); $el.addClass("active").siblings().removeClass('active'); $("#dijit_utm").load($el.find('a').attr('href')); });