【发布时间】:2018-07-26 15:11:29
【问题描述】:
抱歉,标题有点模糊,但我会尽力解释得更好。我在thiscodepen 中写了一些快速代码来显示我的问题。
基本上,我的 codepen 有两个切换按钮,“男性”和“女性”,以方便使用。我还附加了一个按钮和一个点击监听器:$('#doClick').click(function() {...}。
当按钮被点击时,点击监听器通过调用$("#female").click();来切换女性按钮
我的问题是,当页面首次加载并且默认选择“男性”时,按下按钮会更改切换按钮,但它仍然会在控制台中吐出“男性已选中”。所以本质上,点击监听器中的if 条件在在单选按钮实际切换为“女性”之前检查。
这是一段较大代码的一部分,其中根据当前选择的内容执行不同的代码,因此在我的代码中,由于切换时间和条件检查,正在执行不正确的代码。
我希望我的问题得到了很好的描述。
我想知道是否有人知道为什么会这样,我能做些什么来解决这个问题?下面的代码解决了这个问题:
$('#male').click(function() {
console.log("Male was checked")
});
$('#female').click(function() {
console.log("Female was checked")
});
但我不确定是否需要两个不同的点击侦听器,并且想知道是否有更好的解决方案。
谢谢
【问题讨论】:
-
您可以使用 1 个侦听器并检查
event对象中单击元素的id。 -
使用
change事件 -
$('#male, #female').change(function() { ...绑定change用于无线电不是click -
@Feathercrown。谢谢你的建议。我想知道您是否有玩具建议的代码示例? ArtemSky,我没想到 - 很好,谢谢。我需要查看我的代码,看看这样做是否有任何影响。我想知道是否有人碰巧知道为什么会发生这种情况,但使用 vanilla JS 可以正常工作?
标签: javascript jquery if-statement radio-button click