我在iPhone中触发jquery .change()事件时遇到问题。代码类似于以下内容:
var checkboxes = $('#someelement').find('input[type=checkbox]');
checkboxes.change(function() {
//never gets here on iPhone
alert('hello');
});
checkboxes.filter(':checked').trigger('change');
复选框列表在此步骤之前动态生成,使用 .append() 方法写入页面。
这一切都在桌面浏览器和安卓手机中运行良好。使用 JQuery 版本 1.6.4
有什么想法吗?
尝试使用 delegate
,它允许您将事件附加到当前和未来的元素。
$("#someelement").delegate('input[type="checkbox"]', "change", function(){
alert('hello');
});
此外,从 jQuery 1.5 开始,所有属性选择器都需要引用(例如,第二个选择器中的"复选框")。