【发布时间】:2013-10-31 14:55:33
【问题描述】:
我有 3 个盒子。每个大框(红色)内都有一个小框(默认为黑色,悬停为灰色)。
在悬停红色框时,小框的颜色应该会改变(现在可以改变了)。
当您单击红色框时,黑色框应变为灰色(正在工作),同时当您将鼠标悬停在其他框上时,它应该与第 1 点相同(也正在工作)。但问题从这里开始。当您单击红色框时,黑色框会变为灰色,当您再次单击该红色框时,灰色框不会变为黑色。所以黑框应该在每次点击到红框时切换(黑色到灰色,然后灰色到黑色)。
我不能使用任何 css :hover 效果。
jQuery
$('.libg').click(function () {
$('this').find('.imagebg').removeClass("clicked").toggleClass('active');
$(this).find('.imagebg').toggleClass("clicked");
}).hover(
function () {
if (!$(this).find('.imagebg').hasClass("clicked")) $(this).find('.imagebg').addClass('active');
},
function () {
if (!$(this).find('.imagebg').hasClass("clicked")) $(this).find('.imagebg').removeClass('active');
});
有什么关系吗(数据点击为真)。
这是 jfiddle -- http://jsfiddle.net/squidraj/PTZE9/5/
【问题讨论】:
-
我在你的小提琴中发现灰色框切换回黑色!
-
它似乎正在按照您描述的方式工作。但是它应该是 $(this) 而不是 $('this')。
-
我看到的错误是:点击后悬停不起作用
-
@optionaloptional 是的,但前提是您从框中鼠标移出。单击红色框后,黑色框变为绿色,不要尝试通过再次单击来切换它,但不要将鼠标移出红色框。
标签: javascript jquery html