我在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);
});

09-27 00:01
查看更多