Javascript 第一次单击后禁用单选按钮或分数增量

Javascript 第一次单击后禁用单选按钮或分数增量,javascript,jquery,html,radio-button,Javascript,Jquery,Html,Radio Button,单击正确答案(me-John:)时,分数将递增。问题是,当你不断点击John时,分数会不断增加 我做了研究,发现了.unbind()jquery代码,但不确定如何实现它,或者这是否是最好的解决方案 人们会提出什么建议 最好我希望脚本找到被点击的按钮,而不是说如果(button1)被点击,作为一个例子,因为这个测验可能会变得相当大,这将是乏味的 提前谢谢 更新: 现在使用此代码: 但它仍然无法发挥作用 我在上面使用的页面是: 你知道为什么吗?我还包括了jQuery1.7.1库 完成!:) 如果

单击正确答案(me-John:)时,分数将递增。问题是,当你不断点击John时,分数会不断增加

我做了研究,发现了.unbind()jquery代码,但不确定如何实现它,或者这是否是最好的解决方案

人们会提出什么建议

最好我希望脚本找到被点击的按钮,而不是说如果(button1)被点击,作为一个例子,因为这个测验可能会变得相当大,这将是乏味的

提前谢谢

更新: 现在使用此代码:

但它仍然无法发挥作用

我在上面使用的页面是:

你知道为什么吗?我还包括了jQuery1.7.1库


完成!:)

如果希望只执行一次任何事件处理程序,则使用jQuery
one
绑定事件处理程序。一旦触发事件,它将自动解除绑定

$('input:radio').one('click', function(){
     //do stuff here
});
您可以更改代码中的逻辑并尝试使用它,但以下是您可以根据代码尝试的内容

function scoreIncrement(elem) {//where elem is the radio button element that is clicked
    if(!$(elem).data('scored')){
       score++;
       document.getElementById("score").innerHTML = score;
       $(elem).data('scored', true);
    }
}​

工作演示-

如果希望只执行一次任何事件处理程序,请使用jQuery
one
绑定事件处理程序。一旦触发事件,它将自动解除绑定

$('input:radio').one('click', function(){
     //do stuff here
});
您可以更改代码中的逻辑并尝试使用它,但以下是您可以根据代码尝试的内容

function scoreIncrement(elem) {//where elem is the radio button element that is clicked
    if(!$(elem).data('scored')){
       score++;
       document.getElementById("score").innerHTML = score;
       $(elem).data('scored', true);
    }
}​

正在运行的演示-

我在您的示例中没有看到jQuery。@ShankarSangoli的答案非常好。我只想补充一点,您可能想签出,这样即使用户重新加载页面,您也可以跟踪哪些问题已得到回答。谢谢大家@j08691那里没有jquery,对了,我说过我不知道如何实现它。@Shankar,我会看一看,谢谢。我在你的例子中没有看到jQuery。@ShankarSangoli的答案很好。我只想补充一点,您可能想签出,这样即使用户重新加载页面,您也可以跟踪哪些问题已得到回答。谢谢大家@j08691那里没有jquery,对了,我说过我不知道如何实现它。@Shankar,我会看看的,谢谢。我的分数增量现在完全停止工作了,有什么想法吗?我要把我的代码输入JSFIDLE吗?不知道为什么我的代码不工作。我已经把所有的代码完全放进去了,即使显示/隐藏现在也不起作用,但我看到它在JSFIDLE中起作用。这可能是我的jquery include,因为我看不到jsFiddle包含的内容:是的,我看到了“非法字符”[在此错误上中断]$(elem).data('scored',true);}​}更新:立即删除控制台中的所有错误!出于某种原因,不得不删除并重新编写,很奇怪。现在测试可以了,但是您给我的代码没有像JSFIDLE中那样运行。这根本没用!有什么想法吗?我的分数增量现在完全停止工作了,有什么想法吗?我要把我的代码输入JSFIDLE吗?不知道为什么我的代码不工作。我已经把所有的代码完全放进去了,即使显示/隐藏现在也不起作用,但我看到它在JSFIDLE中起作用。这可能是我的jquery include,因为我看不到jsFiddle包含的内容:是的,我看到了“非法字符”[在此错误上中断]$(elem).data('scored',true);}​}更新:立即删除控制台中的所有错误!出于某种原因,不得不删除并重新编写,很奇怪。现在测试可以了,但是您给我的代码没有像JSFIDLE中那样运行。这根本没用!有什么想法吗?