Checkbox stays checked when clicking on it in a dropdown

后端 未结 2 1486
遥遥无期
遥遥无期 2021-01-22 00:28

I have a dropdown list containing checkeboxes :

2条回答
  •  谎友^
    谎友^ (楼主)
    2021-01-22 01:23

    Use event.stopPropagation() and event.preventDefault to disable events

    $('#columnsListDropDown a').on('click', function( event ) {
    
        var input = $(this).find("input");
        var columnName = $.trim($(this).text());
        if (event.target.localName === "input") {
        // Case where user has clicked on the input
            if ($(input).is(':checked')) {
                $("#myTable").find("[data-column='"+columnName+"']").show()
            } else {
                $("#myTable").find("[data-column='"+columnName+"']").hide()
            }
        } else {
         event.preventDefault();
         event.stopPropagation();
        // Case where the user has clicked on the label, or in li element
            if ($(input).is(':checked')) {
                $("#myTable").find("[data-column='"+columnName+"']").hide()
                $(input).prop('checked', false);
            } else {
                $("#myTable").find("[data-column='"+columnName+"']").show()
                $(input).prop('checked', true);
            }
        }
        return false;
    });
    

    `

提交回复
热议问题