我有一段代码:

<div id="tab1" class="w-tab-pane" data-w-tab="Tab 1">
              <div class="text-block">ΜΕΓΕΘΗ</div>
              <a class="button w-button <?php if(in_array("xs",$arr_shirts)) echo "kg-active-btn-size"; ?>" id="shirt_0" onclick="getSize('hidden_shirt_0','xs');" href="#">XS</a> <!-- (86-91) -->
                <input type="hidden" id="hidden_shirt_0" value="<?php if(in_array("xs",$arr_shirts)) echo "xs"; ?>" />
              <a class="button w-button <?php if(in_array("s",$arr_shirts)) echo "kg-active-btn-size"; ?>" id="shirt_1"  onclick="getSize('hidden_shirt_1','s');" href="#">S</a>
                <input type="hidden" id="hidden_shirt_1" value="<?php if(in_array("s",$arr_shirts)) echo "s"; ?>" />
              <a class="button w-button <?php if(in_array("m",$arr_shirts)) echo "kg-active-btn-size"; ?>" id="shirt_2" onclick="getSize('hidden_shirt_2','m');" id="shirt_2" href="#">M</a>
</div>


在div内,我有很多具有onclick事件的链接。当用户单击链接按钮时,我希望按钮变为黑色并保持黑色背景色。如果用户再次单击,则背景从黑色变为白色..我也有以下onclick事件代码:

$('#tab1 a').focus(function(){
            if ($(this).hasClass('kg-active-btn-size')) {
                $(this).removeClass("kg-active-btn-size").addClass("button w-button");
            }
            else {
                $(this).addClass("kg-active-btn-size");
            }
    });


因此,以上代码将一个类添加到特定的链接标记。如果再次单击,请删除该类。.此代码在Chrome,Firefox和Safari上均能正常工作。.我也尝试过

$(this).toggleClass("kg-active-btn-size");


但仍然没有运气..我正在使用:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js" type="text/javascript"></script>


作为ajax库,因为我的代码不仅仅包含这段代码。我想念什么吗?提前致谢

最佳答案

未经测试,但是尝试此。例如,ID为#shirt_1的对象-对象伪造的替代方案,您可以使var伪造。但是我更喜欢这些对象字符串,因为可以在任何地方读取它们。

var fake = {}
$('#shirt_1').on('click', function(){
        if (fake.fake == 'yes') {
        $('#shirt_1').css('background-color', 'black');
        fake.fake = 'no'
        }else{
        $('#shirt_1').css('background-color', 'white');
        fake.fake = 'yes'
        }
});


另外,如果可以使用点击,为什么还要使用焦点。也许是问题重点。另外,请始终使用console.log进行调试,或者在每个新步骤中发出警报,以了解您的进展。

10-08 06:25