我创建了一个jQuery代码,用于在单击图像时插入边框
<div class="span2">
<div class="text">
<div class="pull-left ">
<div id="opt" class="btn">
<img class='roller' src="http://thumbs.dreamstime.com/z/food-balanced-diet-form-circle-15460029.jpg">
<p>img1</p>
</div>
<div id="opt" class="btn">
<img class='roller' src="http://thumbs.dreamstime.com/z/food-balanced-diet-form-circle-15460029.jpg">
<p>img2</p>
</div>
<div id="opt" class="btn">
<img class='roller' src="http://thumbs.dreamstime.com/z/food-balanced-diet-form-circle-15460029.jpg">
<p>img3</p>
</div>
</div>
</div>
<div class="text">
<div class="pull-left ">
<div id="opt" class="btn">
<img class='roller' src="http://thumbs.dreamstime.com/z/food-balanced-diet-form-circle-15460029.jpg">
<p>1</p>
</div>
<div id="opt" class="btn">
<img class='roller' src="http://thumbs.dreamstime.com/z/food-balanced-diet-form-circle-15460029.jpg">
<p>2</p>
</div>
<div id="opt" class="btn">
<img class='roller' src="http://thumbs.dreamstime.com/z/food-balanced-diet-form-circle-15460029.jpg">
<p>3</p>
</div>
</div>
</div>
</div>
我需要在用户点击其他图片后删除该边框。
答案 0 :(得分:3)
您可以委派事件并使用以下逻辑:
$('.span12').on('click', '.roller:not(.highlight)', function (e) {
$(e.delegateTarget).find('.roller.highlight').add(this).toggleClass('highlight');
});
但公平地说,它应该仅在CSS中完成:
.btn input[name=opt] {
display: none;
}
.roller {
border: 6px solid transparent;
}
.btn input[name=opt]:checked + .roller {
border-radius: 50%;
border-color: black;
-webkit-transition: border-color 600ms;
/* Safari */
transition: border-color 600ms;
}
img {
width:120px;
height: 120px;
}
&#13;
<div class="span12">
<div class="text">
<div class="pull-left ">
<div class="btn">
<label>
<input type="radio" name="opt">
<img class='roller' src="http://thumbs.dreamstime.com/z/food-balanced-diet-form-circle-15460029.jpg">
</label>
<p>img1</p>
</div>
<div class="btn">
<label>
<input type="radio" name="opt">
<img class='roller' src="http://thumbs.dreamstime.com/z/food-balanced-diet-form-circle-15460029.jpg">
</label>
<p>img2</p>
</div>
<div class="btn">
<label>
<input type="radio" name="opt">
<img class='roller' src="http://thumbs.dreamstime.com/z/food-balanced-diet-form-circle-15460029.jpg">
</label>
<p>img3</p>
</div>
</div>
</div>
<div class="text">
<div class="pull-left ">
<div class="btn">
<label>
<input type="radio" name="opt">
<img class='roller' src="http://thumbs.dreamstime.com/z/food-balanced-diet-form-circle-15460029.jpg">
</label>
<p>1</p>
</div>
<div class="btn">
<label>
<input type="radio" name="opt">
<img class='roller' src="http://thumbs.dreamstime.com/z/food-balanced-diet-form-circle-15460029.jpg">
</label>
<p>2</p>
</div>
<div class="btn">
<label>
<input type="radio" name="opt">
<img class='roller' src="http://thumbs.dreamstime.com/z/food-balanced-diet-form-circle-15460029.jpg">
</label>
<p>3</p>
</div>
</div>
</div>
</div>
&#13;
或为border-radius
制作动画效果:
答案 1 :(得分:2)
这应该有效:
$('.roller').on('click', function() {
$('.roller').removeClass('highlight');
$(this).addClass('highlight');
});
答案 2 :(得分:1)
.roller
元素不是兄弟,所以你必须做一些DOM遍历来定位它们。
要么:
$(this).addClass('highlight').parent().siblings().find('.roller').removeClass('highlight');
或
$('.roller').removeClass('highlight');
$(this).addClass('highlight');
答案 3 :(得分:1)
在将其添加到下一张图片之前删除您的课程。
$('.roller').on('click', function() {
$('.roller').removeClass('highlight');
$(this).addClass('highlight');
});
答案 4 :(得分:1)
$('.roller').on('click', function() {
$(this).parent().siblings().find('.roller').removeClass('highlight');
$(this).addClass('highlight');
});
答案 5 :(得分:1)
就像那个一样简单
$("#test_inner .test-item").each(function(e) {
if (e != 0)
$(this).hide();
});
var array = $(".test-item");
var index = 0;
$(".next-btn").click(function(){
if(index==array.length-1){
$(this).hide();
}
array.eq(index++).hide();
array.eq(index).show();
或使用范围更快:
$('.roller').on('click', function() {
$('.roller').removeClass('highlight').filter(this).addClass('highlight');
});
如果将此限制在'.text'类
的范围内$('.roller', '.span12').on('click', function() {
$('.roller','.span12').removeClass('highlight').filter(this).addClass('highlight');
});