jquery IE8 bug 中的 .on 方法
.on method in jquery IE8 bug
$(function() {
var inputChecked = "skills__label_checked",
radioChecked = "education__label_checked",
elemsInput = $(".skills__input_checkbox, .education__input_radio");
function setLabelClass() {
elemsInput.each(function(i, e) {
$(e).parent('label')[e.checked?'addClass':'removeClass']
($(e).is(':radio')?radioChecked:inputChecked);
});
}
elemsInput.on('change', setLabelClass);
setLabelClass();
});
这在所有现代浏览器(包括 IE9+(中都运行良好,但在 IE8 中不起作用。
IE8(以及更早版本(在更改事件上存在很大错误:
IE 5-8 在复选框或单选标记模糊时触发事件,而不是 当它被激活时。这是一个严重的错误,需要用户 执行其他操作并阻止一致的跨浏览器界面 基于复选框和单选单机上的更改事件。
参考: http://www.quirksmode.org/dom/events/change.html
尝试将事件处理程序从 change
更改为 click
或尝试修复强制触发更改事件的行为(未测试(:
$('.skills__input_checkbox, .education__input_radio').click(function () {
// Cause the change() event
// to be fired in IE8 et. al.
this.blur();
this.focus();
});
相关文章:
- 来自Jquery的“.on”方法在动态生成的下拉列表后不起作用
- jquery IE8 bug 中的 .on 方法
- 在“on”方法中使用obj/this
- 角度火:未定义不是一个函数($on方法不存在)
- 无法调用未定义的 on 方法
- 在 node.js 上使用 socket.on 方法从浏览器获取数据
- 如何将jquery对象转移到“On”方法(第二个参数)
- 将运行时参数值发送到jQuery's ON方法
- Jquery中.on方法的正确使用
- jQuery使用on方法将函数绑定到按钮
- jQuery .on()方法看不到新元素
- JQuery .on()方法,将多个事件处理程序添加到一个选择器
- jquery on()方法的最大调用栈大小超过
- setTimeout函数中的关键字,该函数嵌套在on()方法下.但这并没有奏效
- Firebase .on()方法被触发多次
- 首选使用.on()方法,而不是.click()、.bind()、.hover()、.load()、.ready()等方法
- .on()方法的问题
- 简化.on()方法中同一父元素的多个子元素的选择器
- 无法删除使用.on方法添加的元素
- 在绑定时,On()方法页面将附加事件并转到下一页