【发布时间】:2023-03-17 12:47:01
【问题描述】:
无线电输入更改事件有两个事件侦听器,如果发生更改事件,则调用这两个事件侦听器。如果调用了另一个事件侦听器,我想禁用/删除它。
<label><input type="radio" name="sex" value="Male">Male</label>
<label><input type="radio" name="sex" value="Female">Female</label>
$("input:[type='radio']").change(function(){
//first listener
})
$("input:[type='radio']").change(function(){
//second listener
})
我需要的是,如果调用了一个侦听器,则不应调用其他侦听器。
【问题讨论】:
-
为什么需要 2 个事件处理程序?应该调用哪一个?在什么条件下
-
应该删除哪一个?更好的是,不要添加那个事件处理程序。
-
一个常见于其他页面,我无法删除它,另一个特定于一个页面。
-
这就是为什么你应该使用类来选择具有通用功能的元素,而不是标签名称。
-
在这种情况下,在附加新的事件处理程序之前调用
off(),但我建议总体上使用类仍然是一个更好的解决方案。
标签: jquery event-handling onchange jquery-events