JQuery帮助创建切换函数

JQuery帮助创建切换函数,jquery,Jquery,我正在尝试创建一个功能切换菜单 我想我想做: 当用户单击菜单项div时,应选中其复选框,并在下方显示最小菜单 如果用户再次单击menuitem div,则minmenu应隐藏,menuitems复选框应取消选中 使用一个不工作的div进行的测试: $('div#category1').click(function(e){ $('div#minimenu1').removeClass('hidediv'); $('div#minimenu1').addClass('someclas

我正在尝试创建一个功能切换菜单

我想我想做:

  • 当用户单击菜单项div时,应选中其复选框,并在下方显示最小菜单

  • 如果用户再次单击menuitem div,则minmenu应隐藏,menuitems复选框应取消选中

  • 使用一个不工作的div进行的测试:

    $('div#category1').click(function(e){
        $('div#minimenu1').removeClass('hidediv');
        $('div#minimenu1').addClass('someclass').show(200);
        $('div#minimenu1').toggle(200);
    });
    });
    
    我的CSS:

    .hidediv {display:none;}
    
    我的HTML:

    类别2的My Jquery代码: $(函数(){

    如果您正在使用新版本的jQuery,请选择以下复选框:

    $(".myCheckbox").prop("checked", true);
    
    如果没有:

    $('.myCheckbox').attr('checked','checked');
    
    您可以使用each函数并使用this关键字引用元素,从而使代码模块化(但您需要保留ID并将一个类添加到divs class='category'中,然后使用类似这样的方法从中获取):

    试试这个

    $(".menuitem").click(function() {
    $(".minimenu").slideDown();
    $(".menuitem:checkbox").attr("checked", true);
    if ($(".menuitem").is(":visible")) { 
        $("#accordion").slideup("fast"); 
    $(".menuitem:checkbox").attr("checked", flase);
    } 
    })
    

    下面是我编写的一个示例,显示了菜单项、标题、内容和复选框切换

    <head>
    <script type="text/javascript" src="http://segnosis.net/jquery.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){
            $("div").click(function(){
                var sub = $(this).children(".contents").first();
    
                if($(this).hasClass("menu-item") == true){
                    sub.toggle();
                    $("#option1").attr("checked", "checked");
                }
            });
        });
    </script>
    </head>
    <body>
        <div class="menu-item">
            <h4>Menu Item 1</h4>
            <div class="contents">
                <input id="option1" type="checkbox" /><label for="test1">Option 1</label>
            </div>
        </div>
    </body>
    </html>
    
    
    $(文档).ready(函数(){
    $(“div”)。单击(函数(){
    var sub=$(this.children(“.contents”).first();
    if($(this).hasClass(“菜单项”)==true){
    sub.toggle();
    $(“选项1”).attr(“选中”、“选中”);
    }
    });
    });
    菜单项1
    选择1
    
    您是否尝试自己编写一些代码?是的,我已将其发布在我的问题中。我已为类别1创建了我想要的代码,但我是否可以创建一个函数以避免重复编写代码?我已更新了我的问题,我会的。只有一个小问题。单击复选框时,它会被选中和取消选中。见她:
    $(".myCheckbox").prop("checked", true);
    
    $('.myCheckbox').attr('checked','checked');
    
    $.each($('div.category'), function () {
    
                var categoryDiv = $(this);
                var relativeMinimenu = categoryDiv.next();
    
                categoryDiv.toggle(function () {
                    relativeMinimenu.removeClass('hidediv').addClass('someclass').show(200);
                    categoryDiv.addClass('clicked').show(200);
                    categoryDiv.find('input:checkbox').attr('checked', 'checked');
                }, function () {
                    categoryDiv.removeClass('clicked').find('input:checkbox').prop("checked", false);
                    relativeMinimenu.addClass('hidediv');
                });
    
            });
    
    $(".menuitem").click(function() {
    $(".minimenu").slideDown();
    $(".menuitem:checkbox").attr("checked", true);
    if ($(".menuitem").is(":visible")) { 
        $("#accordion").slideup("fast"); 
    $(".menuitem:checkbox").attr("checked", flase);
    } 
    })
    
    <head>
    <script type="text/javascript" src="http://segnosis.net/jquery.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){
            $("div").click(function(){
                var sub = $(this).children(".contents").first();
    
                if($(this).hasClass("menu-item") == true){
                    sub.toggle();
                    $("#option1").attr("checked", "checked");
                }
            });
        });
    </script>
    </head>
    <body>
        <div class="menu-item">
            <h4>Menu Item 1</h4>
            <div class="contents">
                <input id="option1" type="checkbox" /><label for="test1">Option 1</label>
            </div>
        </div>
    </body>
    </html>