如果条件检查两个选择器悬停,如果悬停,文本行下划线

时间:2015-07-08 18:39:57

标签: javascript jquery

使用变量简化更新, nevermind (原始问题是使用一个选择器作为变量并执行此操作)

基本上为什么以下不起作用。

注意:: 当没有声明||又名第二选择器时,工作没问题。但是那么它的作用是不允许在文本上使用一次css自然:hover方法,所以这就是为什么我试图在这里添加第二个选择器第一名。 我需要悬停图片,并看到相应的文字链接hover,我还需要保持仅在相应的文字链接上悬停以获得hover下划线效果。有关如何使用CSS / sass无法在jQuery中使用:hover作为稳定选项的建议吗?

setInterval(function(){
    if $("#t1").is(":hover") || $(".thumba").is(":hover")) {
       $(".thumba").css("text-decoration", "underline");
    }
    else {
       $(".thumba").css("text-decoration", "none");
    }
}, 200);

setInterval(function(){
    if $("#t2").is(":hover")) || $(".thumbb").is(":hover")) {
       $(".thumbb").css("text-decoration", "underline");
    }
    else {
       $(".thumbb").css("text-decoration", "none");
    }
}, 200);

另一个例子:

你有一张图片,比如图像a。)

<img src=" [图片a] ">

然后你有一个带有一些文字的段落:

<div&gt; blahblahloremipsum <a href="#"> clickhere </a> blachhhhhhh </div>

我想将鼠标悬停在图片a上并允许点击此处以显示下划线,我希望将鼠标悬停在&#39;和下划线消失。我不仅希望在图像上,而且作为文本链接的标准,基本上如果你将鼠标悬停在这里点击而不是图像仍然将加下划线。

另一次尝试:(但此处下划线在鼠标不再悬停后无法取消附加)

$(document).mousemove(function() {    
    if($('#t1').is(':hover') || $('.thumba').is(':hover')) {
        $('.thumba').css({'text-decoration':'underline'});
    }
    else {
        $('.thumba').css({'text-decoration':'none'});
    }
});

$(document).mousemove(function() {    
    if($('#t2').is(':hover') || $('.thumbb').is(':hover')) {
        $('.thumbb').css({'text-decoration':'underline'});
    }
    else {
        $('.thumbb').css({'text-decoration':'none'});
    }
});

看一看:这里(下面的链接)它描述了如果使用一个实例,这就是为什么它可能对我失败并且不是解决方案;但是我没有在这个帖子上看到多个解决方案。&#34;(这只适用于选择器只匹配1个元素 - 参见编辑3以获取更多信息)&#34;

Detect IF hovering over element with jQuery

3 个答案:

答案 0 :(得分:2)

您需要在末尾添加另一个括号,并在第一个条件后删除一个:

if($thumbone.is(":hover") || $('.thumba').is(":hover")) {

你可能想要参考这个问题来检查悬停:

Jquery condition check is(':hover') not working

答案 1 :(得分:1)

您可以使用CSS在文本链接上实现悬停效果的下划线:

.thumbb:hover,.thumbb-hover {text-decoration:underline;}

然后您会检测到图片上的mouseentermouseleave事件:

$('#t1,#t2')
.on('mouseenter', function() {
    $('.thumbb').addClass('thumbb-hover');
})
.on('mouseleave', function() {
    $('.thumbb').removeClass('thumbb-hover');
});

这里是working fiddle。这里是fiddle with two images

答案 2 :(得分:-1)

A.O。是的,检查括号。此外,每次我在html类上使用jquery,我都会确保抓住第一个。它是默认功能,但显式声明它总是很好。

if($thumbone.is(":hover") || $('.thumba').first().is(":hover")) {