【发布时间】:2011-11-12 04:37:18
【问题描述】:
如果我有单选按钮:
<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>
为了确保“更改”事件只绑定到单选按钮一次,我做了这样的事情:
var $el = $('input[name='myRadioBtns']');
if(!($el.data('events') && $el.data('events').change)) {
$el.change(function() {
//EVENT HANDLER
});
}
目前情况很好,“更改”事件只绑定到我的单选按钮一次。
但是,我也希望事件处理程序只被调用一次。我的意思是,如果我选择一个单选按钮,我的事件处理程序将被调用,然后它等待服务器端的响应,有时需要 5 秒,在 5 秒内,如果用户更改为选择另一个单选按钮,则更改事件处理程序将被再次调用!
我的问题是如何确保事件处理程序只被调用一次,这就是当“更改”事件处理程序已被触发时如何禁用单选按钮?
【问题讨论】:
-
jQuery 有一个 .one() 方法可以做这样的事情:api.jquery.com/one 但是,我认为你真正想要做的是禁用单选按钮 onChange,然后重新启用它们AJAX 请求完成。对吗?
-
您好 mblase75,是的,这正是我所需要的。
标签: javascript jquery jquery-selectors jquery-events