0

クリックすると、スパンの背景色の変更を有効にする 2 つのチェックボックス (以下を参照) があります。問題は、これらのチェックボックスの 1 つだけを有効にし、もう 1 つのチェックボックスを無効にする必要があることです。私はラジオ ボタンについてすべて知っています。問題は、ラジオ ボタンが無効になっていても、スパンの背景色が削除されないことです。1 つだけを選択できるようにし、別のオプションが選択されたときに背景色を自動的に削除するソリューションが必要です。

例: http://eblacksmith.com/test/

コアコード:

$(document).ready(function() {

$("span[class='checkbox']").addClass("unchecked");

    $(".checkbox").click(function(){

        if($(this).children("input").attr("checked")){  
            // uncheck
            $(this).children("input").attr("checked", false);
            $(this).removeClass("checked");
            $(this).addClass("unchecked");
        }else{
            // check
            $(this).children("input").attr("checked", true);
            $(this).removeClass("unchecked");
            $(this).addClass("checked");
        }

        //alert($(this).children("input").attr("checked"));
    });

});
4

1 に答える 1

0

以下は動作するはずです

 $(document).ready(function() {

   // get a list of all the checkboxes
   var $checkboxEls = $('input[type="checkbox"]');

   $(document).on('change', 'input[type="checkbox"]', function(event) {

     // highlight this check box
     $(this).parent('span').addClass('checked');

     // remove other classes
     $checkboxEls.not(this).removeAttr('checked').parent('span').removeClass('checked');

   });
 });

not()を使用して、以前に保存したチェックボックスのリストから現在のチェックボックスを削除します。例はこちら

于 2013-03-13T16:20:35.900 に答える