在JQuery中,当一个变更事件被添加到单选或复选框中时,如果其值发生变化,就会触发该变更事件;本文将详细介绍如何使用JQuery触发Checkbox的change事件。有需要了解的朋友可以参考一下。
早上做一个功能,勾选复选框的时候会显示隐藏层,不勾选的时候会隐藏选中的层。初始代码如下:复制代码代码如下:$ (function () {$ ('# ISChange ')。change(function(){ alert(' checked '));});});过了好久,一点反应都没有。百度一下,有专家指出,以上几行代码在Firefox等浏览器中可以正常运行,即选中复选框或取消复选框,会弹出一个对话框,但在IE中不能正常执行,即选中或取消复选框,对话框不会立即弹出。
在单击复选框之外的任何位置之前,必须选中或取消复选框。据说IE会等到复选框失去焦点才触发change事件。改进后的代码如下:复制代码如下:$ (function () {if ($。browser . msie){ $(' input:checkbox ')。click(function(){ this . blur());this . focus();});};$('#ischange ')。change(function(){ alert(' checked ');});});补充:更改复选框的值后,IE正在等待失去焦点,但click事件立即被触发。因此,使用click事件使复选框失去焦点将触发chang事件,然后将焦点再次转移到复选框。如果是单选,只需将复选框改为单选即可。
在JQuery中,当一个change事件被添加到radio或checkbox中时,如果它的值发生变化就会触发change事件,就像我们在HTML中写下面的代码一样:复制代码如下:input type=' checkbxo ' id=' test checkbox ' onchange=' my function()' name=' fruits ',我们使用的JQuery的代码如下:复制代码如下:$ (document)。ready(function(){ $(' test checkbox ')。change(function(){ alert(' option changed!');});});上述代码在Firefox等浏览器中可以正常运行,即当你选择或取消复选框时,会弹出一个对话框,但在IE中不能正常执行,即如果你选择或取消复选框,对话框不会立即弹出。选中或取消复选框后,必须单击复选框以外的任何位置。这样做的原因是,据说IE会等到复选框失去焦点才触发change事件。目前这个问题还没有修复,但是网上有专家提供了解决方案:复制代码如下:$ (function () {if ($。browser . msie){ $(' input:checkbox ')。click(function(){ this . blur());this . focus();});}});只要使用复选框,上面的代码就可以应用于radio。上面这段代码的原理是:改变checkbox的值后,IE正在等待失去焦点,但是click事件马上被触发。因此,使用click事件使checkbox失去焦点将触发chang事件,然后将焦点再次转移到checkbox。有人可能会问为什么不直接用click事件代替change事件呢?对于checkbox,click事件和change事件可以执行相同的功能,但是对于radio,则不同。可以在不改变值的情况下连续单击同一个单选按钮,然后在不触发change事件的情况下触发click事件。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。