2013-10-13 1 views
2
나는 다음과 같은 코드에 대한보다 효율적인 방법이 있는지 찾고 있어요

:여러 IF 함수를 jQuery와 어떻게 조합합니까?

$(".menu").click(function() { 
$(".submenu").slideToggle("fast", function() { 
// Animation complete. 
}); 
}); 

$(".menu2").click(function() { 
$(".submenu2").slideToggle("fast", function() { 
// Animation complete. 
}); 
}); 

$(".menu3").click(function() { 
$(".submenu2").slideToggle("fast", function() { 
// Animation complete. 
}); 
}); 

답변

1
$.each([1,2,3], function(index) { 
    $(".menu"+index).click(function() { 
    $(".submenu"+index).slideToggle("fast", function() { 
    // Animation complete. 
    }); 
    }); 
} 
+0

정말로 멋진 Neeraj, 고맙습니다. 메인 메뉴가 클릭되었을 때 마지막 메뉴가 닫히지 않거나 토글되지 않는 이유를 말해 줄 수 있습니까? http://jsbin.com/iwUNAwO/1/edit – user2844139

0
$(".menu").click(function() { 
    $(".submenu").slideToggle("fast", function() { 
    // Animation complete. 
    }); 
}); 

$(".menu2,.menu3").click(function() { 
    $(".submenu2").slideToggle("fast", function() { 
    // Animation complete. 
    }); 
}); 
1

당신은 특성이 선택기로 시작 [이용하여 이런 식으로 몇 가지 일을 할 수 당신에게 :) 감사합니다 [name^= "value"]] 클래스 이름을 사용하여 submenu 클래스 1의 공통 번호를 가져옵니다.

$("[class^=menu]").click(function() { 
    num = this.className.replace('menu', '') 
    $(".submenu" + num).slideToggle("fast", function() { 
    // Animation complete. 
    }); 
}); 
0

괜찮 았던 사람들 덕분에 더 논리적 인 jQuery를 만드는 두 가지 방법을 찾았습니다. 도와 주셔서 감사합니다. 당신 없이는 할 수 없었습니다 !!!

예를 들어, Neeraj의 예제를 시도했지만 마지막 메뉴/하위 메뉴에 JSBin으로 닫지 않는 문제가있었습니다. 약간의 시행 착오를 통해 다른 번호 (이 경우 4)를 추가하면 이제 메뉴/하위 메뉴 # 3이 완벽하게 열리거나 닫힐 수있는 것처럼 보였습니다. 왜 그런지는 모르지만 그것은 나를 위해 일했습니다!

$.each([1,2,3], function(index) { 
$(".menu"+index).click(function() { 
$(".submenu"+index).slideToggle("fast", function() { 
// Animation complete. 
}); 
}); 
} 

다시 한번 감사드립니다.

JSBin은 훌륭한 도구라는 것을 알았습니다. (쉽게 알아볼 수있는 빨간색 글꼴의 오류를 보여줍니다.)

JSfiddle은 코드를 "정리"하고 싶을 때 유용합니다. 실시간 보호기는 무엇입니까! 내 웹 사이트가 실제로 와서 행복하지 않을 수 있습니다. 코멘트와 예제를 작성한 모든 분들께 감사드립니다.