正在寻找一种解决方法,因为radiobutton.click()会挂起Safari,但可以在Chrome中使用

Tim*_*van 3 javascript safari jquery

我有一个表格,里面有一些复选框,我添加了这段代码,这样当你点击特定表格单元格的任何部分时,复选框就会被选中.选中复选框后,我需要disabled从按钮中删除一个类,以允许用户移动到下一步.

此代码在Chrome中运行良好,但在Safari中,它会在$('input:radio', $parent).click()调用时立即挂起窗口.

有没有更正确的方法来做到这一点?

$('td.info, td.control').click(function() {
  var $parent;
  $parent = $(this).parent();
  $('input:radio', $parent).attr('checked', true);
  return $('input:radio', $parent).click();
});
$("input[name='package[order_option_id]']").click(function() {
  return ($("#select-interaction-link")).removeClass('disabled');
});
Run Code Online (Sandbox Code Playgroud)

Bar*_*mar 5

我认为挂起的原因是你造成了一个无限循环.当代码单击单选按钮时,单击会冒泡到包含td,这会导致您的click()处理程序再次运行.

我想你可以解决这个问题:

$("td.info input:radio, td.control input.radio").click(function(e) {
    e.stopPropagation();
}
Run Code Online (Sandbox Code Playgroud)