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

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

    }); 

我該如何優化這段代碼片段。整個代碼共享here循環/優化jQuery代碼

+1

爲了循環,答案選項將需要在某種類型的結構。 –

+2

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

回答

3

不知道你的「優化」的意思,但你可以隨時加入我們的選擇,因爲你正在做的幾乎都同樣的事情:

$("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