jQuery on('change') 逻辑在 ios 8.2/8.3 中表现异常

jQuery on('change') logic behaving wierdly in ios 8.2/8.3

我在 mobile-safari(在 ios 8.2/8.3 和 4.1 中)面临 jQuery 逻辑的奇怪行为, 在 chrome、mozilla 和 ie.

中工作

我的要求:我有一个复选框列表,我一次只能从中选择一个,就像单选按钮一样(这是我的要求)。 有四个按钮(创建、查看、编辑、删除)对应于提供的每个复选框。

当任何复选框被选中时,我禁用创建按钮并启用查看、编辑、删除按钮和

如果任何复选框未选中未选中,我将启用创建按钮并禁用VIEW/EDIT/DELETE按钮,为此我写了下面的代码:

CREATE-button class name: 'disable-on-check'

VIEW/EDIT/DELETE buttons class name: 'enable-on-check'

$(':checkbox').on('change',function(){ 
var curr = $(this);                  
if(curr.is(':checked')){            
    $(".enable-on-check").addClass("click-enabled").removeClass("click-disabled");
    $(".disable-on-check").removeClass("click-enabled").addClass("click-disabled");                               
    $('.chkbx').prop("checked",false); //to make checkbox to behave like a radio button
    $(this).prop("checked",true);  //to make checkbox to behave like a radio button                             
}
else{
    $(".enable-on-check").removeClass("click-enabled").addClass("click-disabled");
    $(".disable-on-check").removeClass("click-disabled").addClass("click-enabled");
} });

我的问题:在 mobile-safari 中(ios 8.2/8.3 和 4.1) 当我 选中 任何复选框(超过两次或三次)时,创建按钮被突出显示 而不是 VIEW/EDIT /DELETE按钮和

如果我取消选中任何复选框VIEW/EDIT/DELETE按钮将被启用而不是创建按钮——这是完全符合我的逻辑相反行为

请帮帮我,为什么我只在 mobile-safari 中遇到这个问题?? 提前致谢

经过多次尝试,更改事件类型帮助我解决了问题。

根据我的经验,我观察到 .on('change') 在某些情况下两次调用我的逻辑(不知道为什么)。所以我尝试了 .on('keydown click') 现在一切正常:)

最后的答案是:

$(':checkbox').on('keydown click',function(){ 
var curr = $(this);                  
if(curr.is(':checked')){            
    $(".enable-on-check").addClass("click-enabled").removeClass("click-disabled");
    $(".disable-on-check").removeClass("click-enabled").addClass("click-disabled");                               
    $('.chkbx').prop("checked",false); //to make checkbox to behave like a radio button
    $(this).prop("checked",true);  //to make checkbox to behave like a radio button                             
}
else{
    $(".enable-on-check").removeClass("click-enabled").addClass("click-disabled");
    $(".disable-on-check").removeClass("click-disabled").addClass("click-enabled");
} });