2010-03-24 2 views
2

아래의 코드는 작동하지만 문제는 있습니다. 첫 번째 탐색 링크를 클릭하면 div가 표시됩니다. 이것은 내가 원하는 것입니다. 하지만 다른 탐색 링크를 클릭하면 다음 div가 예상대로 표시됩니다. 하지만 숨길 수있는 이전 div가 필요합니다. . 도움을 주시면 감사하겠습니다.현재 보여주고있는 div보기 이전에 div를 클릭 한 것을 숨기기

다음과 같이 표시됩니다. 클릭 한 탐색 링크가 아닌 경우 숨기기. 나는 생각할 것이다.

$(document).ready(function(){ 

    $('#navigation a').click(function (selected) { 

    var getName = $(this).attr("id"); 
    var projectImages = $(this).attr("name"); 

    //console.log(getName); 
    //console.log(projectImages); 

    $(function() {  
     $("#" + projectImages).show("normal"); 
    }); 
    }); 
}); 

답변

2

당신은 당신이 새로운 사업부 (들)을 표시 할 때 보여주는, 그리고 그 클래스 요소를 숨기는 사업부에 클래스를 추가하는 시도 할 수 있습니다. 다음과 같은 내용 :

$(document).ready(function(){ 

    $('#navigation a').click(function (selected) { 

    var getName = $(this).attr("id"); 
    var projectImages = $(this).attr("name"); 

    $(function() {  
     $(".current").hide().removeClass("current"); 
     $("#" + projectImages).show("normal").addClass("current"); 
    }); 
    }); 
}); 
+0

내 대답보다 분명히 깨끗합니다. 재미있는 점은 내가 작성한 여러 플러그인에서이 작업이 수행되었다는 것입니다. : P –

+0

내가 필요로하고 기대했던대로 효과가있었습니다. 감사합니다. rosscj2533 ussteele – ussteele

+0

이 방법을 사용하는 경우 "현재"클래스를 숨긴 후 제거해야합니다. –

0

나는 일반적으로 숨길 필요가있는 모든 이미지를 래핑 <div>에 클래스를 할당하여이 기능을 달성 할 것입니다. 그런 다음, 모든 클릭에 해당 사업부를 숨기고 당신이 필요 보여

$(document).ready(function(){ 
    $('#navigation a').click(function (selected) { 

    var getName = $(this).attr("id"); 
    var projectImages = $(this).attr("name"); 

    $('div.special_images').hide(); 
    $("#" + projectImages).show("normal"); 
    }); 
}); 

또한, 당신이 당신의 projectImages을 포장 할 필요가 없습니다으로 코드를 보여

$(function() { ... }); 

그것은에 대한 바로 가기입니다 위의 코드 :

$(document).ready(function() {...}); 

코드 전체가 이미 랩핑되어 있습니다.

0

나는 당신의 마크 업에 같은데요 :

<ul id='navigation'> 
    <li><a href='#' id='nav1' name='nav1menu'>Link 1</a><ul id='nav1menu'>...</ul></li> 
    <li><a href='#' id='nav2' name='nav2menu'>Link 2</a><ul id='nav2menu'>...</ul></li> 
    <li><a href='#' id='nav3' name='nav3menu'>Link 3</a><ul id='nav3menu'>...</ul></li> 
</ul> 

귀하의 질문은 "마지막으로"를 클릭에 대한 요구하지만, 질문의 끝은 다른 모든 메뉴를 폐쇄해야한다는 의미 것으로 보인다. 이 경우 :

$(document).ready(function(){ 

    $('#navigation a').click(function (selected) { 

    var getName = $(this).attr("id"); 
    var projectImages = $(this).attr("name"); 

    //console.log(getName); 
    //console.log(projectImages); 

    $(function() { 
     $('#navigation ul').hide(); 
     $("#" + projectImages).show("normal"); 
    }); 
    }); 
}); 

클릭하기 전에 모든 UL을 숨 깁니다. 도움이

희망, 조

0

나는이 div가 탐색의 일부가 아니라고 생각합니다. 마지막으로 열린 것을 추적하고 다음을 표시하기 전에 숨 깁니다. 당신은/보여주는 숨어있는 요소가 형제 모든 요소 내부에있는 경우

var = previousProjectImage = ""; 

$(document).ready(function(){ 

    $('#navigation a').click(function (selected) { 

    var getName = $(this).attr("id"); 
    var projectImages = $(this).attr("name"); 

    //console.log(getName); 
    //console.log(projectImages); 

    $(function() { 
     if(previousProjectImage != "") { 
     $("#" + previousProjectImage).hide(); 
     }  
     $("#" + projectImages).show("normal"); 
     previousProjectImage = projectImages; 
    }); 
    }); 
}); 
0

이 작동합니다 :

$(function(){ 
    $('#navigation a').click(function() { 
    $("#" + $(this).attr("name")).siblings().hide().end().show("normal"); 
    }); 
}); 
관련 문제