1

是否可以同时选择 $('.foo')$(this).next('.subfoo') 为同一个鼠标输入?

我有一个代码需要我'.subfoo'以这种方式选择实例,并且我希望它显示最接近的实例'.subfoo'on 将鼠标悬停在 a 上'.foo',而不是隐藏'.subfoo'直到鼠标离开两者。

我想我已经弄清楚了代码的那一部分,但我不知道如何在一个语句中同时选择两者,我找不到任何关于它的信息。

谢谢

4

2 回答 2

0

您可以使用多重选择器语法

$('selector1, selector2, selectorN')

或者 JQuery add方法

var combinedSet = $(this).next('subfoo').add('.foo');
combinedSet.mouseenter(function() { 
    //do stuff in here
});
于 2013-11-14T18:13:52.500 回答
0

我在这里开发的脚本是一个链接列表,每个链接都有一个弹出窗口,其中包含有关该链接的更多信息。这个问题的目的是弄清楚如何通过将鼠标悬停在图标上来打开弹出窗口,并在鼠标离开图标并进入弹出窗口后保持打开状态。

部分困难在于同一页面上有许多相同类型对象的实例,因此解决方案必须是通用的,并触发最接近悬停图标的弹出窗口。

的HTML:

<li class="foo">
   <span class="icon"></span>
   <a href="">Title</a>
</li>
<li class="subfoo">
   Pop-out contents
</li>

JavaScript:

/*setup of variables and functions to be used*/

function clear(){ //set up a function to hide all pop-outs
$('.foo').each(function(){
$(this).next('.subfoo').hide()});}

var popoutHover = false; //initialize switch variable for following function:

$('.subfoo').mouseenter(function(){
popoutHover = true;}); //Set the variable to 'true' if the mouse is hovering over a pop-out

$('.subfoo').mouseleave(function(){
popoutHover = false; //Set the variable to 'false' and hide pop-outs if the mouse leaves
clear();
});

/*The main functionality*/

$('.icon').hoverIntent(function(){ //Hover over the icon for a link
        clear(); //Hide open pop-outs
        $(this)
            .closest('.foo') //Select the link next to the icon
            .siblings('.subfoo') //Select the pop-out for the link
            .slideDown(240)}, //Open the pop-out

function(){//If the mouse leaves the icon
        if (!popoutHover){ //And it is not hovering over a pop-out
        $(this)
            .closest('.foo') //Select the link
            .siblings('.subfoo') //Hide the pop-out
            .hide()}}
);

这是一个快速的小提琴,因为它可能比我目前可以解释的更好: https ://jsfiddle.net/kuzvgqkz/1/

于 2015-07-03T00:14:46.963 回答