2016-05-13 75 views
1

我正在尝试为网站制作一个滤镜。在哪里我想删除可见的复选框(我得到那个工作),删除标签等,只留下一个背景颜色< - 这一切工作。但现在我不知道如何使这些div的点击能够输入字段隐藏。有没有办法解决这个问题在jQuery中?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> 
+0

试试这个答案的http:/ /stackoverflow.com/a/4177175/6127393输入是隐藏的应该没关系。 –

回答

2

假设有一次在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); 
}); 
+0

如果该框未取消选中以执行某些代码,是否还有一种方法? –

+0

实际上,使用''('whatever_selector')。on('change',function(){....'或...'on('click',function(){...'可能需要熟悉'.checked'看到这篇文章:http://stackoverflow.com/a/7031408/2813224 – zer00ne

+0

div.on('click',function(){//这是一个点击事件分配给div.css(“background-color”,“#333”); }); div.on('change',function(){ div.css(“background-color”,“#fff “); });像那样它不工作? –