jQuery .click函数连续执行两次

时间:2013-07-11 16:21:05

标签: javascript jquery html onclick alert

我正在使用jQuery开发我的第一个程序,但我遇到了问题。我在pageLoad上弹出一个对话框,要求用户选择日期和转弯。现在,出于调试目的,每次执行.click()时都会发出警报,并且由于某种原因,它似乎在用户点击之前执行并且之后立即执行。

有三个单选按钮,转动1,2和3.当用户单击转弯1时,警报应显示“1”。当用户点击转弯2时,警报应该说“2”等。但由于某种原因,它会提醒先前的值以及新的值。我搜索了所有代码,只有一个警报,所以我无法弄清楚是什么叫click()两次。我已经在IE和Chrome中测试了它,它发生了两次。

这是我的.click()函数:

$("#turn-radio")
    .click(function () {
    turnvalue = $("input[name='turn-radio']:checked").val();
    alert(turnvalue);
});

如果您选中此jsfiddle,您会看到我的其余代码,这样可以更轻松地找出问题所在。

谢谢!

2 个答案:

答案 0 :(得分:2)

您需要更改selector:,因为您的单选按钮ID不同,并且您将名称命名为selector,这就是您遇到此问题的原因:

 $("input[name='turn-radio']")
        .click(function () {
        turnvalue = $("input[name='turn-radio']:checked").val();
        alert(turnvalue);
    });

Updated Fiddle

答案 1 :(得分:1)

更改

$("#turn-radio") to $("#turn-radio label") 

仅导致一个弹出窗口显示前一个值

但是,我个人会

$("#turn-radio input").change( function() { /* do stuff */ } )