如何检查单选按钮是不是已与“更改”事件处理程序绑定

Posted

技术标签:

【中文标题】如何检查单选按钮是不是已与“更改”事件处理程序绑定【英文标题】:How to check if the radio buttons has already bound with a "change" event handler如何检查单选按钮是否已与“更改”事件处理程序绑定 【发布时间】:2011-11-12 03:59:23 【问题描述】:

如果我有单选按钮:

<input id="y0" type="radio" name="myRadioBtns" value="a" checked> <label for="y0"></label>
<input id="y1" type="radio" name="myRadioBtns" value="b">  <label for="y1"></label>
<input id="y2" type="radio" name="myRadioBtns" value="c">  <label for="y2"></label>

单选按钮可能已经绑定了一个更改事件处理程序,如下所示:

$('input[name='myRadioBtns']').change(function() 
  //EVENT HANDLER
);

我需要检查单选按钮是否已经与“更改”事件处理程序绑定。

我的问题是如何检查单选按钮是否已经与“更改”事件处理程序绑定

【问题讨论】:

***.com/questions/1515069/… 应该会有所帮助。 ***.com/questions/1236067/… 【参考方案1】:

您可以通过以下方式获取绑定事件:

.data('events')

【讨论】:

嗨,谢谢,我遇到了另一个问题,这里是***.com/questions/7334947/…【参考方案2】:

如果你想在绑定另一个事件之前测试一个更改事件是否已经被绑定,使用这个:

var $el = $('input[name='myRadioBtns']');

if( ! ($el.data('events') && $el.data('events').change) ) 

   $el.change(function() 
       //EVENT HANDLER
   );

【讨论】:

嗨,谢谢,我遇到了另一个问题,这里是***.com/questions/7334947/…【参考方案3】:

此外,您可以绑定多个命名空间更改事件,每个事件执行不同的操作。例如,如果您正在编写一个 jQuery 插件,该插件需要将事件绑定到元素,但不删除页面上可能已经设置的任何现有事件。

每当我编写 jQuery 插件时,我都会确保所有事件都像这样绑定:

    $(":checkbox").on("change.myNamespace", function()
        //Do Stuff - this won't replace existing change events on checkboxes!
    );

【讨论】:

以上是关于如何检查单选按钮是不是已与“更改”事件处理程序绑定的主要内容,如果未能解决你的问题,请参考以下文章

在 Sencha Touch 中处理单选按钮上的事件

单选按钮检查事件处理

Aurelia在检查更改时将值绑定到单选按钮

C# 中带有单选按钮的 groupBox 的事件处理程序

Javascript:如何让单选按钮的“onchange”事件通过外部函数触发?

如何在Extjs 4中使用自定义检查或选中的radiogroup事件