我想让jQuery只在点击或按下键时触发一个动作,只有input#show1
被检查。我在下面尝试它的方式似乎是检查输入是否被检查但是它不能以某种方式工作的最简单的方法
感谢我在代码中做错的任何帮助!
<script>
if ($('input#show1').is(':checked')) {
alert("show1 is checked");
}
</script>
<input type="radio" id="show1" name="group">
<label for="show1">Show</label>
<input type="radio" id="hide1" name="group" checked>
<label for="hide1">Hide</label>
答案 0 :(得分:1)
由于它是收音机,因此在点击时会进行检查。所以
$(function() { // at load
$("#show1").on("click",function() {
alert("checked"); // when clicked
});
if ($("#show1").is(":checked") { // at load time
alert("Checked at page load");
}
});
我的猜测是,没有看到你想要的其他代码
$(function() { // at load
$("#someDiv").toggle($("#show1").is(":checked"));
$(".group").on("click",function() {
$("#someDiv").toggle(this.id=="show1");
});
});
答案 1 :(得分:0)
#show1
标记中根本未检查 HTML
。我假设您打算检查#hide1
。
此外,您需要包装代码
jQuery(function($) { // same as doing $(document).ready(function() {
if ($('input#hide1').is(':checked')) {
alert("hide1 is checked");
}
});
等待DOM准备就绪。
如果你不这样做,javascript代码将在之前执行甚至创建<input/>
元素。
答案 2 :(得分:0)
这里有两个选项,要么对DOM加载执行条件检查,要么检查更改。您必须等待要加载的文档,您可以使用$(document).ready()
调用来执行此操作。在click
上调用mplungjan建议的功能也可以,但我不喜欢它。您只希望在值从未选中更改为已选中时发生某些事情,而不是在检查后再次点击它时。因此,您可以使用change
。
$(document).ready(function () {
function checker() {
if ($('input#show1').is(':checked')) {
alert("show1 is checked");
}
}
checker();
$('input#show1').change(checker);
});
此代码将检查页面加载的值,并且还会监视用户所做的更改。在this fiddle中,点击&#34;显示&#34;。 In this one,警报将在页面加载时显示,因为我将check属性添加到Show。
$(document).ready(function () {
$(document).keyup(function(e) {
if (e.keyCode == 27 && $('input#show1').is(':checked')) {
alert('Esc key pressed.');
}
});
});
在行动here中查看。
$(document).ready(function () {
$(document).keyup(function(e) {
if (e.keyCode == 27) {
checker();
}
});
$("#control").click(function() {
checker();
});
function checker() {
if ($('input#show1').is(':checked')) {
alert("It's checked.");
}
else {
console.log("Bummer, mate.");
}
}
});
将其设置为here。