1
if (lastclicked == 'undefined'){
    $('#Info-Side-Tabs a:#Main').parent().addClass('active');
} else {
    $('#Info-Side-Tabs a:lastclicked').parent().addClass('active');
}

lastclicked 可以告诉您您在我的侧选项卡切换器上单击的最后一个链接。单击显示/隐藏时不会更改。我想做的是,当您没有单击任何选项卡并隐藏选项卡时,活动类将切换到关闭/打开选项卡,但内容不会改变。因此,如果 lastclicked 未定义,这将是因为您没有单击其他任何内容,当您重新打开时,活动选项卡将切换回默认值。如果它不是未定义的,则情况相同,但当前可能有两个选项卡供活动类返回。

我的完整 JQuery 代码:

$('#Info-Side-Tabs a').click(function() {
    var clicked = $(this).attr('href');
    if (clicked == "#Map-Selection-Info-Close") {
        $('#Info-Side-Tabs li').removeClass('active');
        $(this).parent().addClass('active');
        $(this).attr("href","#Map-Selection-Info-Open");
        $(this).text('Open Me');
        $('#Map-Selection-Info').animate({marginLeft: '978px'}, 1000);
        $('#ATWI80C-Map').animate({width: '900px' }, 1000);
    } else if (clicked == "#Map-Selection-Info-Open") {
        $(this).parent().removeClass('active');
        $(this).attr("href","#Map-Selection-Info-Close");
        $(this).text('Close Me');
        $('#Map-Selection-Info').animate({marginLeft: '670px'}, 1000);
        $('#ATWI80C-Map').animate({width: '600px' }, 1000);
        if (lastclicked == 'undefined'){
            $('#Info-Side-Tabs a:#Main').parent().addClass('active');
        } else {
            $('#Info-Side-Tabs a:lastclicked').parent().addClass('active');
        }
    } else {
        lastclicked = clicked;
        switchback = $('clicked');
        $('#Info-Side-Tabs li').removeClass('active');
        $(this).parent().addClass('active');
        var activeTab = $(this).attr('href');
        $('#tab-content > div:visible').hide();
        $(activeTab).show();
    }
    //alert(lastclicked);
});

我已经尝试了各种方法,这只是当前的尝试。

实时视图:https ://tornhq.com/WorkingOn/InteractiveMap/implementing.html#Map-Selection-Info-Close

4

1 回答 1

0

尝试更改此行:

if (lastclicked == 'undefined'){

对此:

if (typeof lastclicked === "undefined"){

小提琴:http: //jsfiddle.net/UhDKq/1/

要在小提琴中进行测试,请更改行

var lastclicked;

var lastclicked = "#Anything"; 

然后再次切换回来。

如果单击“关闭我”或“打开我”,它不会一直lastclick设置,直到它完全下降。if

if (clicked == "#Map-Selection-Info-Close") {  // Close Me
    //code
} else if (clicked == "#Map-Selection-Info-Open") { // Open Me
    //code
    if (typeof lastclicked === "undefined") {
            alert("undefined");
            //$('#Info-Side-Tabs a:#Main').parent().addClass('active');
            $('#Info-Side-Tabs li#Main a').addClass('active'); 
        } else {
            alert("defined");
            //$('#Info-Side-Tabs a:lastclicked').parent().addClass('active');
            $('#Info-Side-Tabs a[href="' + lastclicked + '"').parent().addClass('active');
        }
于 2013-04-02T21:39:06.927 回答