0

我试过这个,但它不工作:

$('cbxShowNotifications').click(function()
{
    var tview = $('#treeview');

    if ($(this).checked)
    {
        tview.show();
    }
    else
    {
        tview.hide();
    }
});

编辑 -

修复了一些问题,但在隐藏 DIV 后仍然无法显示它:

$('#cbxShowNotifications').on('click', (function()
{
    var tview = $('#treeview');

    if ($(this).checked)
    {
        tview.show();
    }
    else
    {
        tview.hide();
    }
}));
4

5 回答 5

4

将 ($(this).checked) 更改为 ($(this).is(':checked'))

于 2013-08-06T22:49:46.997 回答
1

您有一些语法问题,您应该监视复选框上的更改事件:

$('#cbxShowNotifications').on('change', function () {
    var tview = $('#treeview');
    if ($(this).prop('checked')) {
        tview.show();
    } else {
        tview.hide();
    }
});

注意:您可以通过更改事件的触发器来设置初始状态:

$('#cbxShowNotifications').trigger('change');
于 2013-08-06T22:53:44.670 回答
0

你可以这样做:

$('#treeview').on({
    'change': function(){
        if ($('div').css('display') == 'block') {
            $('div').hide();
        } else {
            $('div').show();
        }
    }
})

jsfiddle:http: //jsfiddle.net/PWAwz/

于 2013-08-06T22:56:51.757 回答
0

这是你要搜索的吗?我在下面编写了代码,您可以检查它们是否也在示例中工作。http://jsfiddle.net/jquerybyexample/xe7aL/

$(document).ready(function(){
    $('.checkbox1').change(function(){
         $('.tview').toggle('fast');
    });
});
于 2013-08-06T23:02:24.483 回答
0

我知道您的问题与 jQuery 有关,但如果目的纯粹是为了展示,也许您可​​以考虑使用 CSS 方法来完成同样的事情:

#treeview {
  display: none
}

#cbxShowNotifications:checked ~ #treeview {
  display: block
}

您可以在这里查看一个示例:http: //jsfiddle.net/BZQX4/5/

于 2013-08-06T23:34:36.070 回答