对于这个非常简单的问题感到抱歉,但我怎样才能在Jquery下面合并? 问题是如何设置:
$('.cmb2 OR .cmb3 OR .cmb4').hover(function ()
$('.cm2 OR .cm3 OR .cm4 DEPENDS ON WHAT IS HOVERED IN ABOVE LINE ').addClass('cmactive');
完整代码:
$('.cmb2').hover(function ()
{
$('.cmactive').hide();
$('.cmactive').removeClass('cmactive');
$('.cm2').addClass('cmactive');
$('.cm2').show();
});
$('.cmb3').hover(function ()
{
$('.cmactive').hide();
$('.cmactive').removeClass('cmactive');
$('.cm3').addClass('cmactive');
$('.cm3').show();
});
$('.cmb4').hover(function ()
{
$('.cmactive').hide();
$('.cmactive').removeClass('cmactive');
$('.cm4').addClass('cmactive');
$('.cm4').show();
});
答案 0 :(得分:2)
您可以使用逗号组合器组合选择器:
$('.cmb2,.cmb3,.cmb4').hover(function ()
在事件处理程序中,上下文(this
)是触发事件的元素,因此您可以检查该元素的类以找出要显示的元素。
$('.cmb2,.cmb3,.cmb4').hover(function () {
$('.cmactive').hide().removeClass('cmactive');
var target =
$(this).hasClass('cmb2') ? '.cm2' :
$(this).hasClass('cmb3') ? '.cm3' :
'.cm4';
$(target).addClass('cmactive').show();
});
答案 1 :(得分:1)
使用逗号列出选择器列表,如果将其分配给变量,则可以在回调函数中对所有选择器进行操作。
var $cmbs = $('.cmb2, .cmb3, .cmb4');
$cmbs.hover(function ()
$(this).addClass('cmactive');
$cmbs.not(this).removeClass('cmactive');
});
答案 2 :(得分:0)
为什么不为它们中的所有三个添加一个公共类,然后排队呢?或者,您可以使用这样的CSS选择器:$('[class^="cmb"]')
。您还可以通过用逗号分隔所需内容来选择多个类,这样就可以$('.cmb2, .cmb3, .cmb4')