Javascript复选框已选中,并存在触发器问题
在我的javascript文件中,代码是Javascript复选框已选中,并存在触发器问题,javascript,jquery,Javascript,Jquery,在我的javascript文件中,代码是 $( document ).ready(function() { $("input:checkbox[id^='chkbox_']").on('click',function(){ var chkbox = $(this); if(chkbox.is(':checked')){ alert('In if'); } else { alert('In else');
$( document ).ready(function() {
$("input:checkbox[id^='chkbox_']").on('click',function(){
var chkbox = $(this);
if(chkbox.is(':checked')){
alert('In if');
} else {
alert('In else');
}
});
$("#" + id).trigger('click');
});
此代码在else中为我提供了
我不明白为什么,这个编辑的解决方案是什么:这个答案似乎只适用于1.9之前的版本,当“bug”出现时
这个问题也给我留下了深刻的印象。原因是,当您实际使用鼠标单击复选框时,将首先设置其状态,然后执行其单击处理程序。如果使用jQuery触发单击,则首先执行单击处理程序,然后设置状态
一种解决方案是触发本机javascript点击处理程序,如下所示:复选框[0]。点击()
,其作用与jQuery的相同。点击()
/。触发('click')
,但顺序正确
另一种方法是执行checkbox.attr('checked',true.).triggerHandler('click')
,首先设置状态,triggerHandler()
只执行处理程序,而不执行默认行为(选中该框)
无论单击是真实的还是触发的,这两种解决方案都应该允许代码工作。这可能是jquery库的问题。或浏览器问题。这对我来说很好。您可以使用1.8以上的最新jquery
点击查看答案
它可以从我这里正常工作!!检查此@ekans它不适用于jquery 1.8.3请检查此链接@RahulVarma您也请检查此链接。虽然这在较新的图书馆有效谢谢我工作过,解释这是一种很好的方式。非常感谢@Peter HerdenborgGlad我能帮上忙!但我看到其他人声称它无论如何都应该有效。也许他们是对的,我的知识已经过时了。您可以尝试升级jQuery。我的jQuery版本是1.8.3,但它无法使用。感谢您的检查。他们的bug报告页面有点难以解释。我不确定从现在起我从哪里得到了1.7,但我认为它是在1.9中固定的(正如Explore-X在他的回答中所建议的)。我已经更新了我的答案。