#jquery #html #css
#jquery ( jquery ) #HTML #css — код
Вопрос:
У меня есть два переключателя. нажав на один переключатель, вы получите внешнюю границу с цветом. при нажатии на другой переключатель появится внутренняя граница, которая окружает изображение.
<!DOCTYPE html>
<html>
<head>
<script>src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"> </script>
<style>
.container1{
float:left;
width:33%;
height:456px;
display:inline-block;
}
#h{
color:black;
font-style:none;
}
.grid{
padding:10px;
width:93%;
border:1px solid white;
height:310px;
}
img{
margin:5px;
}
.right1{
padding-left:80px;
display:inline-block;
width:20%;
height:300px;
border:1px solid black;
}
#tele1{
border:1px solid white;
}
#tele2{
border:1px solid white;
}
#tele3{
border:1px solid white;
}
#tele4{
border:1px solid white;
}
#button1{
width:100px;
margin-top:40px;
}
#button2{
width:100px;
margin-top:20px;
}
.right2{
float:right;
width:30%;
height:300px;
}
</style>
<script>
$(document).ready(function(){
$("#kar1").click(function(){
var thik=$("#kar1").attr('src');
$("#tele1").attr('src',thik)
$("#tele1").fadeToggle();
});
$("#kar2").click(function(){
var thik1=$("#kar2").attr('src');
$("#tele2").attr('src',thik1)
$("#tele2").fadeToggle();
});
$("#kar3").click(function(){
var thik2=$("#kar3").attr('src');
$("#tele3").attr('src',thik2)
$("#tele3").fadeToggle();
});
$("#kar4").click(function(){
var thik3=$("#kar4").attr('src');
$("#tele4").attr('src',thik3)
$("#tele4").fadeToggle();
});
$("#list").change(function(){
var selectedValue=$(this).val();
$("#h").css("color",selectedValue);
});
$("#fonts").change(function(){
var selecteValue=$(this).val();
$("#h").css("font-size",selecteValue);
});
$('input[type="radio"]').click(function(){
$("#h").css("font-style",$(this).val());
});
$("#img1").click(function(){
$("#button1").click(function(){
var lk=$(this).val();
$(".grid").css("border-Color",lk);
});
$("#button2").click(function(){
var k=$(this).val();
$(".grid").css("border-Color",k);
});
});
$("#grid1").click(function(){
$("#button1").click(function(){
var llk=$(this).val();
$("img").css("border-Color",llk);
});
$("#button2").click(function(){
var kl=$(this).val();
$("img").css("border-Color",kl);
});
});
});
</script>
</head>
<body>
<h3 id="h" >Album tittle</h3>
<div class="container1">
<div class="grid">
<img id="tele1" src="original.jpg"width="45%"height="120px">
<img id="tele2" src="original.jpg"width="45%"height="120px">
<img id="tele3" src="original.jpg"width="45%"height="120px">
<img id="tele4" src="original.jpg"width="45%"height="120px">
</div>
<div class="addimg">
<img id="kar1" src="bike.jpg"width="20.2%"height="100px" >
<img id="kar2" src="purple-curves-circles- 271580.jpg"width="22.4%"height="100px">
<img id="kar3" src="fail.jpg"width="22.2%"height="100px">
<img id="kar4" src="download.jpg"width="22.4%"height="100px">
</div>
</div>
<div class="right1">
<form id="my form">
<input id="img1" type="radio" name="bcolor"value="U">image
<input id="grid1" type="radio" name="bcolor"value="B">grid
</form>
<br>
<button id="button1" value="red"> red</button><br>
<button id="button2" value="yellow" >yellow</button>
<div class="right2">
<P>
Color :
<select id="list">
<option value="red">red</option>
<option value="blue">blue</option>
<option value="#ff00ff">pink</option>
<option value="#ff9900">orange</option>
<option value="#0088cc">light blue</option>
</select>
</p>
font-size:
<select id="fonts">
<option value="1px">1
<option>
<option value="10px">10
<option>
<option value="20px">20
<option>
<option value="30px">30
<option>
<option value="40px">40
<option>
<option value="50px">50
<option>
<option value="60px">60
<option>
</select>
<br><br>
<input id="family1" type="radio" name="k" value="italic">I
<input id="family1" type="radio" name="k" value="normal">N
<input id="family1"type="radio" name="k" value="Courier New">I
</div>
</body>
</html>
Мой код не работает, когда я нажимаю второй переключатель, он также изменяет цвет внешней границы. второе радио должно изменять только цвет только внутренней границы.
Ответ №1:
Вы имеете в виду, что переключатели с идентификаторами #img1 и #grid1 меняют цвет div с помощью class .right1?
Ваш пример не говорит сам за себя. Пожалуйста, уточните.
P.S: переключатели внизу имеют одинаковые идентификаторы, что невозможно. Поскольку каждый элемент должен иметь уникальный идентификатор, вы должны предоставить name
атрибуту некоторое общее значение (если это a type=radio
). Вы можете попробовать предоставить class
вместо Id
этого здесь.
Некоторые наблюдения из кода: если вы пытаетесь изменить цвет некоторых элементов с помощью элементов #img1 и #grid1, как показано ниже:
$("#img1").click(function(){
$("#button1").click(function(){
var lk=$(this).val();
$(".grid").css("border-Color",lk);
});
$("#button2").click(function(){
var k=$(this).val();
$(".grid").css("border-Color",k);
});
});
$("#grid1").click(function(){
$("#button1").click(function(){
var llk=$(this).val();
$("img").css("border-Color",llk);
});
$("#button2").click(function(){
var kl=$(this).val();
$("img").css("border-Color",kl);
});
});
тогда это не будет выполнять никаких действий, потому что предоставление a $("#<button>").click(function(){...})
внутри события щелчка любого элемента не приведет к автоматическому запуску обработчика события щелчка. Вы должны использовать $("#<button>").trigger("click");
вместо этого.
Пожалуйста, внесите изменения, которые я предложил, и, пожалуйста, перепишите свой код и проверьте. В остальном все вроде нормально. 🙂
Надеюсь, это поможет вам. Спасибо.