我在javascript和jquery中非常新。我有这个复选框:
<label for="editable">Editable </label><input name="editable" type="checkbox" id="edita"/>
而这个jQuery动作:
$('#slickbox1').toggle(400);
return false;
我想在选中复选框时执行该操作。谢谢!
最佳答案
您可以尝试:
$('#edita').change(
function() {
if ($(this).is(':checked')) {
$('#slickbox1').toggle(400);
}
});
尽管值得注意的是,仅在选中
toggle()
方法时运行它(假设它以未经检查的方式开始),涉及到用户单击一次输入以显示它,然后再次删除该检查并再次重新检查它以便将其隐藏为toggle()
的结果。可能值得考虑:
$('#edita').change(
function() {
if ($(this).is(':checked')) {
// checked
$('#slickbox1').show(400);
}
else {
// un-checked
$('#slickbox1').hide(400);
}
});
如果选中该复选框,则会显示
$('#slickbox1')
;如果未选中,则将其隐藏,要么:
$('#edita').change(
function() {
$('#slickbox1').toggle(400);
});
选中和取消选中
$('#slickbox1')
时,可在show()
和hide()
之间切换input
。编辑以解决DomingoSL(OP)在评论中提出的问题:
...如果现在触发器不是复选框而是按钮,您可以进行编辑以查看过程吗?
为了适应这种情况,需要进行两项更改:
button
没有change
事件,因此必须改用click()
,并且button
没有:checked
(或等效)状态,因此if
/ else
变得多余。但是,一种方法是,由于您没有发布相反的信息,我假设您的元素名称保持不变,是:
$('#edita').click(
function(){
$('#slickbox1').toggle(400);
});