2013-07-12 2 views
-1
$("body") 
    .on("click", "#buttonTwoA", function(){ 
    $(".bordDotGrey").slideUp("slow"); 
    $("#questionOne").append(ans2OptionA); 

    }); 
$("body") 
    .on("click", "#buttonTwoB", function(){ 
    $(".bordDotGrey").slideUp("slow"); 
    $("#questionOne").append(ans2OptionB); 

    }); 

이 코드 스 니펫을 어떻게 최적화 할 수 있습니까? 전체 코드는jquery 코드 루핑/최적화

+1

는 응답 옵션은 어떤 종류의 구조에있을 필요가있다. –

+2

http://codereview.stackexchange.com/ – j08691

답변

3

는 "최적화"가 무슨 뜻인지 확실하지 here을 공유하지만 둘 다 거의 같은 일을하고있는 당신은 항상 선택기에 가입 할 수 있습니다 :

$("body").on("click", "#buttonTwoA, #buttonTwoB", function(){ 
    $(".bordDotGrey").slideUp("slow"); 
    $("#questionOne").append(window['ans2Option' + this.id.slice(-1)]); 
}); 

당신은 아마해야을 전역 변수는 실제로 좋은 생각이 아니므로 변수를 선택하는 더 좋은 방법을 찾아야합니다.

편집 :

한 번만 이벤트 핸들러 발사 :이 제대로을 통해 루프를 위해

$("body").on("click", "#buttonTwoA, #buttonTwoB", function(){ 
    $(".bordDotGrey").slideUp("slow"); 
    $("#questionOne").append(window['ans2Option' + this.id.slice(-1)]); 
    $("body").off("click", "#buttonTwoA, #buttonTwoB"); 
}); 
+0

매번 각 단추를 선택하는 대신 루프를 통해이 작업을 수행하려고했습니다. – sree

+0

공유 코드에서 사용자가 두 버튼을 모두 클릭하면 #buttonTwoA와 #buttonTwoB 두 개의 div가 추가됩니다. 하나를 클릭하면 하나의 버튼을 비활성화하려고합니다. – sree

+0

@sree - 대답을 편집했습니다. – adeneo