javascript - jquery 单击一个隐藏的复选框

标签 javascript jquery html css

我正在尝试为网站制作滤色器。在我想删除可见复选框的地方(我得到了那个工作),删除标签等。只留下一个带有背景颜色的 div <-- 这一切都有效。但是现在我不知道如何让这些 div 可以点击,因为输入字段是隐藏的。有没有办法在 jQuery 中解决这个问题?

这是我的代码:

function onDataReceived(data) {
        $.each(data.colorInfo, function(key, colorInfo) {
            var inputElement = $("input[name^=filter][value="+colorInfo.id+"]").css("display", "none");
            var labelElement = $('label[for^=filter]').remove();
            var div  = inputElement.parent();

            div.attr('class', 'myclass_'+colorInfo.id);
            div.css("background-color", colorInfo.colorCode);
            div.css("width", "15px");
            div.css("height", "15px");
            div.css("display", "inline-block");
            div.css("marginLeft", "5px");
            div.css("marginBottom", "5px");
            //console.log(colorInfo);
        });
    }

    $(document).ready(function () {
        var url = 'myapi.json';
        $.get(url, onDataReceived);
    });

和 HTML:

<div class="filter_3">
    <input name="filter[]" value="152194" type="checkbox"/>
    <label for="filter_152194">Rood</label>
</div>
<div class="filter_4">
    <input name="filter[]" value="152196" type="checkbox"/>
    <label for="filter_152196">Blauw</label>
</div>
<div class="filter_5">
     <input name="filter[]" value="152198" type="checkbox"/>
     <label for="filter_152198">Oranje</label>
</div>

最佳答案

假设点击 div 后调用一个函数:

function onDataReceived(data) {
    $.each(data.colorInfo, function(key, colorInfo) {
        var inputElement = $("input[name^=filter]  [value="+colorInfo.id+"]").css("display", "none");
        var labelElement = $('label[for^=filter]').remove();
        var div  = inputElement.parent();

        div.attr('class', 'myclass_'+colorInfo.id);
        div.css("background-color", colorInfo.colorCode);
        div.css("width", "15px");
        div.css("height", "15px");
        div.css("display", "inline-block");
        div.css("marginLeft", "5px");
        div.css("marginBottom", "5px");
        /* Added Lines */
        div.css("pointer-events", "auto"); //Just in case, but it's probably not necessary 
        div.css("cursor", "pointer"); //It's nice to have
        div.on('click', function() { //This is a click event delgated to the div
            // Whatever code is needed when div is clicked
        });
        //console.log(colorInfo);
    });
}

$(document).ready(function () {
    var url = 'myapi.json';
    $.get(url, onDataReceived);
});

关于javascript - jquery 单击一个隐藏的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37204452/

相关文章:

python - 如何在 Python 中转义撇号等?

javascript - 从 JavaScript 创建的 HTML 中获取源代码

javascript - jQuery - 如果正文包含确切的字符串,则使变量为真

javascript - d3.js动态设置节点可见性

javascript - 在 IE 中阻止脚本

javascript - 如何使用 jQuery StickyForms 重新加载多个选择框的值?

jquery - Chrome 移动模拟器中的布局不适应

javascript - jquery 获取自定义(编造的)属性值

javascript - 如果未选中单选按钮,jQuery 会删除一个元素

javascript - Angular 2 : How do you access component variables within an event (scope issue)