2010-09-01 57 views
2

我有一個網上調查問卷。它的一系列問題與每個問題的一系列答案交替。每個 「答案選擇」是一個asp輸入按鈕。無論何時用戶點擊一個按鈕,該按鈕將重新引入一個新類,並從用戶希望回答的該問題的其他答案按鈕中刪除相同類的 。
該類改變了按鈕的風格,以便用戶清楚地看到他或她對給定問題的選擇。在網絡調查問卷中使用jquery添加/刪除類

類的移除/添加是通過使用jquery的javascript完成的。現在即時通訊使用不同的功能爲每個答案。因爲 會有很多問題,所以我覺得這樣做可能會有更好的方法。如果我有一個全局方法/函數或任何其他名稱,那麼 只是「查看」給定按鈕的第二個類(我的輸入按鈕有兩個類),將所有其他按鈕的「active_vertical」全部移除 與它「查看」的按鈕具有相同的第二類。 或其他一些解決方案。林非常新的JavaScript和jQuery,並沒有太多的編程知識,所以我不知道如何做這樣的事情。繼承人的jQuery代碼:

$(function() { 
     $(".car_insurance_type_button").click(function() { 
      $(".car_insurance_type_button").removeClass("active_vertical"); 
      $(this).addClass("active_vertical"); 
     }); 
    }); 

    $(function() { 
     $(".skadefria_ar_button").click(function() { 
      $(".skadefria_ar_button").removeClass("active_vertical"); 
      $(this).addClass("active_vertical"); 
     }); 
    }); 

    $(function() { 
     $(".under25_button").click(function() { 
      $(".under25_button").removeClass("active_vertical"); 
      $(this).addClass("active_vertical"); 
     }); 
    }); 

繼承人的按鈕:

<input id="Button2" class="button_vertical car_insurance_type_button" type="button" value="Halvår" /> 

,如果有一個解決方案,將那些對性能產生負面影響,因爲它與每個點擊的做多(我想) ?如果是這樣,那麼可以更好地做 我現在就做。

回答

0

讓按鍵多了一個類「answer_button」:

<input id="Button1" class="answer_button button_vertical car_insurance_type_button" type="button" value="Halvår" /> 
<input id="Button2" class="answer_button button_vertical skadefria_ar_button" type="button" value="asdasda" /> 

所以,我想這將工作:

$('.answer_button').each(function(index) { 
    $('.answer_button').removeClass("button_vertical"); 
    $(this).addClass("button_vertical"); 
    }); 
0

你可以在這裏使用不同的方法,如果您的所有按鈕都在一個容器中,這樣說:

<div class="question"> 
    <input class="button_vertical car_insurance_type_button" type="button" value="Halvår" /> 
    <input class="button_vertical car_insurance_type_button" type="button" value="Halvår2" /> 
</div> 

你可以使用一個輕量級的處理程序是這樣的:

$(function() { 
    $(".question input[type=button]").live('click', function() { 
    $(this).closest(".question").find(".active_vertical").removeClass("active_vertical"); 
    $(this).addClass("active_vertical"); 
    }); 
});