复选框显示图片

问题描述:

我试图做到这一点,当您选中/取消选中复选框时,img显示/消失。截至目前,当我检查一个盒子时,所有4张图片都出现了,而不仅仅是一张。另外我想知道使用document.ready多次是错误的吗?这是我有:复选框显示图片

Js: 
    $(document).ready 
    (
    function() 
    { 
     $("#pump").hide(); 
     $("input:checkbox").change(function() { 
     this.checked?$("#pump").show():$("#pump").hide(); 
     }); 
    }); 

    $(document).ready 
    (
    function() 
    { 
     $("#ski").hide(); 
     $("input:checkbox").change(function() { 
     this.checked?$("#ski").show():$("#ski").hide(); 
     }); 
    }); 

    $(document).ready 
    (
    function() 
    { 
     $("#ship").hide(); 
     $("input:checkbox").change(function() { 
     this.checked?$("#ship").show():$("#ship").hide(); 
     }); 
    }); 

    $(document).ready 
    (
    function() 
    { 
     $("#sun").hide(); 
     $("input:checkbox").change(function(){ 
     this.checked?$("#sun").show():$("#sun").hide(); 
     }); 
    }); 

           Html: 
           <div> 
       <input type="checkbox"></input> 
       <label> Pumpkins </label> 
       <img src="images/pumpkins.jpg" id="pump"> 

       <input type="checkbox"></input> 
       <label> Ski Resort </label> 
       <img src="images/ski resort.jpg" id="ski"> 

       <input type="checkbox"></input> 
       <label> Bahamas </label> 
       <img src="images/bahamas.jpg" id="sun"> 

       <input type="checkbox"></input> 
       <label> Cruise </label> 
       <img src="images/cruise.jpg" id="ship"> 

      </div> 
+0

你可以使用css。和+运营商 –

+0

所以 - 代码正在做你想要的。 您已添加4个函数,每个函数都将侦听器添加到更改事件。所以 - 当发生变化事件时,它们全部被触发。 – MarioMucalo

+0

另外 - 当你有4个功能完全相同的代码和不同的参数时 - 通常意味着你做错了什么。您可能只需要一个,并将div的ID作为参数传递给它。 – MarioMucalo

$(window).on("load", function() { 
 
    $("#pump").hide(); 
 
    $("#ski").hide(); 
 
    $("#sun").hide(); 
 
     $("#ship").hide(); 
 
    
 
}); 
 

 
$("#id1").change(function() { 
 
    if(this.checked) { 
 
     $("#pump").show(); 
 
    } 
 
    else{ 
 
     $("#pump").hide(); 
 
    } 
 
}); 
 
$("#id2").change(function() { 
 
    if(this.checked) { 
 
     $("#ski").show(); 
 
    } 
 
    else{ 
 
     $("#ski").hide(); 
 
    } 
 
}); 
 
$("#id3").change(function() { 
 
    if(this.checked) { 
 
     $("#sun").show(); 
 
    } 
 
    else{ 
 
     $("#sun").hide(); 
 
    } 
 
}); 
 
$("#id4").change(function() { 
 
    if(this.checked) { 
 
     $("#ship").show(); 
 
    } 
 
    else{ 
 
     $("#ship").hide(); 
 
    } 
 
}); 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id = "id1" type="checkbox"></input> 
 
       <label> Pumpkins </label> 
 
       <img src="images/pumpkins.jpg" id="pump"> 
 

 
       <input id = "id2" type="checkbox"></input> 
 
       <label> Ski Resort </label> 
 
       <img src="images/ski resort.jpg" id="ski"> 
 

 
       <input id = "id3" type="checkbox"></input> 
 
       <label> Bahamas </label> 
 
       <img src="images/bahamas.jpg" id="sun"> 
 

 
       <input id = "id4" type="checkbox"></input> 
 
       <label> Cruise </label> 
 
       <img src="images/cruise.jpg" id="ship">

您需要为您的复选框创建的ID。

并且在您的事件侦听器的复选框中,您必须检查该框是否已被选中。我喜欢tu使用IF ELSE。

+0

谢谢!这真的有帮助! – user7915139

+0

如果我的答案回答了,请单击接受答案,以便其他人,与您有同样的疑问,知道有一个正确的答案来解决他们的问题。 –