寻找一个解决方案,作为radiobutton.click()挂Safari,但在Chrome中工作
Looking for a workaround, as radiobutton.click() hangs Safari but works in Chrome
我有一个表,其中有一些复选框,我已经添加了这段代码,以便当您单击特定表格单元格的任何部分时,复选框被选中。当复选框被选中时,我需要从按钮中删除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');
});
我认为挂起的原因是你造成了一个无限循环。当代码点击单选按钮时,点击弹出到包含td
,这导致您的click()
处理程序再次运行。
我认为你可以这样解决:
$("td.info input:radio, td.control input.radio").click(function(e) {
e.stopPropagation();
}
尝试不使用上下文:
$('td.info, td.control').click(function() {
return $(this).parent().find('input[type=radio]').attr('checked', true).click();
});
我不知道这是否会影响Safari但是如果你想检查单选,修改这个
$('input:radio', $parent).attr('checked', true);
$('input:radio', $parent).prop('checked', true); // Uses the js property value
或
$('input:radio', $parent).attr('checked', 'checked'); // Uses the attribute
还要记住事件会冒泡…不确定是否可以通过显式调用单选框上的click函数来创建某种循环但我会在Safari中逐步执行确保不会发生这种情况。只是偏执。
相关文章:
- JavaScript函数在Safari中有效,但在Firefox中找不到
- 这个jQuery代码在Mozilla上运行良好,但在Chrome,Opera,Safari上则不然
- 在Rails中使用remote:true在Chrome中有效,但在Safari中无效——从js.erb文件调用succe
- 在getJSON之后构建HTML在Safari中有效,但在Chrome或Firefox中无效
- Date对象在Chrome中有效,但在Safari、Firefox或IE中无效
- 为什么这个html5音频不能在chrome上工作,但在safari上工作得很好
- Cordova iframe在iOS Safari中工作,但在Android中不起作用
- Ipad:window.height() 在 Safari 中给出不好的值,但在 Chrome 中没有
- Element 没有显示在 FireFox 和 Opera 上,但在 Chrome 和 Safari 上可以正常工作
- IF 在 Chrome 中返回 true,但在 Safari 中返回 false
大小属性在 Safari 中受支持,但在 JS img 对象中缺失
- Javascript函数在IE中工作,但在FF,Chrome或Mobile Safari中不起作用
- Ajax 调用在 chrome/safari 中工作,但在 ff 和 ie 中失败
- 音频元素在Safari中运行良好,但在XCode模拟器(web视图)中中断
- 客户端位置检测在Safari桌面上有效,但在Safari手机上无效
- 画布图像行为在Safari中正常,但在其他浏览器中则不然
- 功能在IE8中运行良好,但在Chrome、Mozilla、safari中则不然
- 文件阅读器API在Safari中无法正常工作,但在chrome中工作正常
- 约会数学在Chrome上有效,但在Firefox或Safari上无效
- jQuery'滚动前删除锚点'功能不能在firefox中工作,但在chrome、safari中可以完美工