在jquery中更改当前类和加载页面

时间:2015-02-05 10:32:02

标签: jquery class load

我尝试在菜单上更改当前的课程,然后加载页面。

<ul class="menu2">
    <li class="current" id="1"><a href="?stat=1"><b>item1</b></a></li>
    <li id="2"><a href="?stat=2" ><b>item2</b></a></li>
    <li id="3"><a href="?stat=3" ><b>item3</b></a></li>
    <li id="4"><a href="?stat=4" ><b>item4</b></a></li>
</ul>
$('.menu2 li a').click(function(e) {
    $('.menu2 li').removeClass('current');
    var $parent = $(this).parent();
    if (!$parent.hasClass('current')) {
        $parent.addClass('current');                
        $('#tableau').load($(this).find(a).attr('href'));
    }
    e.preventDefault();
});

当我点击item2时,它会使用好的参数?stat=2加载页面。但目前的课程并不好,它在active中保持item1

但是当我评论这一行时:

$('#tableau').load($(this).find(a).attr('href'));

当前的类更改,但加载不起作用。请有人帮帮我吗?

1 个答案:

答案 0 :(得分:0)

你的逻辑有点偏差。首先,您已从所有current元素中删除了li类,因此if条件是多余的。其次,$(this)引用a元素,因此$(this).find('a')不会返回任何内容。试试这个:

$('.menu2 li a').click(function(e) {
    e.preventDefault();
    var $a = $(this), $parent = $a.parent();
    $parent.addClass('current').siblings().removeClass('current');                
    $('#tableau').load($a.attr('href'));
});