Javascript click函数一行执行两次
我正在使用jQuery编写我的第一个程序,但我遇到了一个问题。我在pageLoad上弹出了一个对话框,要求用户选择日期和轮次。现在,出于调试目的,我每次都让它发出警报。click()执行,出于某种原因,它似乎在用户单击之前和之后立即执行 有三个单选按钮,分别为1、2和3。当用户单击回合1时,警报应显示“1”。当用户单击Turn 2时,警报应显示为“2”,以此类推。但由于某些原因,它会提醒以前的值以及新值。我搜索了我所有的代码,但只有一个警报,所以我无法两次找出调用click()的原因。我已经在IE和Chrome中进行了测试,两次都是这样 这是我的.click()函数:Javascript click函数一行执行两次,javascript,jquery,html,onclick,alert,Javascript,Jquery,Html,Onclick,Alert,我正在使用jQuery编写我的第一个程序,但我遇到了一个问题。我在pageLoad上弹出了一个对话框,要求用户选择日期和轮次。现在,出于调试目的,我每次都让它发出警报。click()执行,出于某种原因,它似乎在用户单击之前和之后立即执行 有三个单选按钮,分别为1、2和3。当用户单击回合1时,警报应显示“1”。当用户单击Turn 2时,警报应显示为“2”,以此类推。但由于某些原因,它会提醒以前的值以及新值。我搜索了我所有的代码,但只有一个警报,所以我无法两次找出调用click()的原因。我已经在I
$("#turn-radio")
.click(function () {
turnvalue = $("input[name='turn-radio']:checked").val();
alert(turnvalue);
});
如果您检查这个,您将看到我的代码的其余部分,这将有助于更容易地找出我的问题是什么
谢谢 您需要更改
选择器:
,因为您的单选按钮ID不同,并且您是以选择器的身份命名的,这就是您面临该问题的原因:
$("input[name='turn-radio']")
.click(function () {
turnvalue = $("input[name='turn-radio']:checked").val();
alert(turnvalue);
});
您需要更改选择器:
,因为您的单选按钮ID不同,并且您以选择器的身份命名,这就是您面临该问题的原因:
$("input[name='turn-radio']")
.click(function () {
turnvalue = $("input[name='turn-radio']:checked").val();
alert(turnvalue);
});
改变
$("#turn-radio") to $("#turn-radio label")
仅导致一个弹出窗口显示上一个值
但是,就我个人而言,我会的
$("#turn-radio input").change( function() { /* do stuff */ } )
改变
$("#turn-radio") to $("#turn-radio label")
仅导致一个弹出窗口显示上一个值
但是,就我个人而言,我会的
$("#turn-radio input").change( function() { /* do stuff */ } )
那完全成功了!非常感谢。:)那完全成功了!非常感谢。:)杰出的你能解释一下为什么它会这样做吗?因为点击事件是从最里面的元素传播的,在你的代码中,它是两个重叠的元素,一个标签和一个无线电输入。您将从两个都被单击的子元素中调用一个单击事件。:)啊,所以是标签导致了第二次。click()执行?这是有道理的。我不知道是什么促使我给他们起了相同的名字。我的标签无论如何都不会改变,所以它甚至不需要名字。过度杀戮从来都不是一件坏事,只要过程的每一部分都是针对具体需求的。另一个可能引入的错误是,弹出窗口将显示在您在容器div中单击的任何位置,而不是我假设您希望的那样,显示在更改输入的单击上。很高兴我能帮上忙!你还需要什么?哇,太好了。非常感谢你的帮助。我实际上有另一个相关的问题,但我会形成一个新的问题,并张贴在这里的链接。你能解释一下为什么它会这样做吗?因为点击事件是从最里面的元素传播的,在你的代码中,它是两个重叠的元素,一个标签和一个无线电输入。您将从两个都被单击的子元素中调用一个单击事件。:)啊,所以是标签导致了第二次。click()执行?这是有道理的。我不知道是什么促使我给他们起了相同的名字。我的标签无论如何都不会改变,所以它甚至不需要名字。过度杀戮从来都不是一件坏事,只要过程的每一部分都是针对具体需求的。另一个可能引入的错误是,弹出窗口将显示在您在容器div中单击的任何位置,而不是我假设您希望的那样,显示在更改输入的单击上。很高兴我能帮上忙!你还需要什么?哇,太好了。非常感谢你的帮助。我实际上有另一个相关的问题,但我会形成一个新的问题,并张贴在这里的链接