这是一个小jQuery函数,当点击一个复选框时,它可以完成我想要的工作,但我知道的基本差距是:
如何注册这个以便它处理页面加载时已经点击的复选框?
(编辑:很抱歉,对于那些已经回答过这个问题的人,但我已经对此进行了编辑以使其更加清晰)
$(document).ready(function() {
$('fieldset input:checkbox').click(function() {
if ($(this).attr('name') == 'foo') {
if ($(this).attr('checked')) {
// hide checkbox 'bar'
}
else {
// show checkbox 'bar'
}
}
}
});
如果我使用.trigger('click'),它会点击(或取消忽略)页面加载时的所有框。
我可以想到一些方法来执行此操作,这将涉及重复部分代码,但我只知道jQuery已经有一个优雅的答案...
答案 0 :(得分:2)
$(document).ready(function() {
$('fieldset input:checkbox').click(handleClick)
.filter(':checked').each(handleClick);
});
function handleClick(){
if ($(this).attr('name') == 'foo') {
// hide checkbox 'bar'
}
else {
// show checkbox 'bar'
}
}
您可能需要在handleClick函数中添加一些逻辑,以确保您知道复选框的状态。您可以通过调用$(this).is(':checked');
答案 1 :(得分:1)
您可以将该代码放入函数中并立即调用该函数。
例如:
function handleCheckbox() {
if ($(this).attr('name') == 'foo') {
// hide checkbox 'bar'
}
else {
// show checkbox 'bar'
}
}
$(function() {
$('fieldset :checkbox').each(handleCheckbox).click(handleCheckbox);
});
答案 2 :(得分:0)
$(function() {
$('fieldset input:checkbox').click(function() {
if ($(this).attr('name') == 'foo') {
// hide checkbox 'bar'
}
else {
// show checkbox 'bar'
}
}).filter(":checked").click();
})
在看到另一个答案后,我不认为以上是你想要的。给另一个人+1。
: - )