默认选中的单选按钮 - JQuery事件不起作用

3

我已经有一个在html中被选中的单选按钮,我需要一些帮助来确定如何在JQuery中应用已选中按钮的事件。 现在,如果按钮已经被点击,那么没有事件发生,但是如果我再次点击它,它会执行它应该执行的操作。 我有两个单选按钮,第一个已经被选中,以便隐藏div中的消息,如果选中第二个单选按钮,则显示该消息。 我在实现已选中的单选按钮时遇到了问题。 这是html代码:

<label for="answer">Answers:</label><input type="radio" name="type" value="Yes/No" class="answers" checked="checked" id="answer"><span> Yes/No Form </span> <br><input type="radio" name="type1" value="Multiple" class="move"> <span>Multiple choice form </span><br>

以下是目前的jQuery代码:

$(".answers").click(function(e) {
    e.preventDefault();
    $("div.desc").hide();
}); 

$(".move").click(function(e) {
    e.preventDefault();
    $("div.desc").show();
}); 

如果有人能帮忙的话,谢谢!

1
我会在输入开关上使用.change - tymeJV
1
@tymeJV和刚才点击的代码部分在你的方法之外运行。这将使它只运行一次,并且因为它已经被检查过了。 - FirebladeDan
1
https://api.jquery.com/change/ 这就是 @tymeJV 的意思。 - FirebladeDan
也许我没有完全理解你想要什么,但是听起来你想在页面加载时隐藏 div - RhapX
@tymeJV - 我明白了.change函数的概念,但我不知道如何实现并使其正常工作。 - Kyuubido0
显示剩余3条评论
2个回答

3

既然您希望在页面加载时隐藏 div,那么只需使用 CSS。

在您的 CSS 类中添加一个 display 属性:

div.desc {
    display: none;
}

或者直接将 div 元素本身隐藏。

<div class="desc" style="display: none;">omg</div>

这样可以在页面加载时将元素隐藏,以便根据需要显示/隐藏表单。

为了完整起见,这里是一个JSFiddle链接。


非常感谢! <3 现在它可以工作了! 我甚至没有考虑过CSS! - Kyuubido0
1
@Kyuubido0 没问题,很高兴能帮助 :) - RhapX
我和楼主有完全相同的不良症状,并且已经将 display: none CSS 应用于该类。看来这对其他人起作用,真是太不幸了。 - velkoon

1
有多种选项可以在页面加载时隐藏$("div.desc"):
1). 在DOM准备就绪时调用触发事件,它将触发一个单击事件,例如:
$(".answers").trigger("click")

或者

2). 只需添加一个简单的条件来在页面加载时明确隐藏内容,例如:

$("div.desc").hide();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接