jquery和/或javascript在safari上不起作用

时间:2017-07-31 22:23:23

标签: javascript jquery

我有一段代码:

<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库,导致我的代码不仅仅是这段代码..对此有何帮助?我错过了什么吗?提前谢谢

1 个答案:

答案 0 :(得分:1)

未经测试但请尝试此操作。作为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进行调试,或者在每个新步骤中发出警报以查看您的距离。