2011-11-09 72 views
0

我一直在尝试设置下面的脚本没有成功。jquery:悬停功能只有当元素不是。点击

我有元素#num_11,它在淡出其他几个元素并在淡出时淡出它们。这是完美的(我已经很自豪)

我想要的是,如果你点击#num_11其他元素保持可见。在再次点击,他们应该再次消失,整个剧本回到原来的“模式”

$("#num_11").hover(
    function(){ 
     $("#identification li").each(function() { 
      $("h1", this).fadeIn(); 
      $("span", this).addClass("opague"); 
     }); 
    }, 
    function(){ 
     $("#identification li").each(function() { 
      $("h1", this).hide(); 
      $("span", this).removeClass("opague"); 
     }); 
    } 
); 

$("#num_11").click(function(){ 
    $(this).toggleClass('clicked'); 
}); 

我在上面的代码是把$试过(“#num_11”)。不是(”被点击“).hover(和$(”#num_11:not(“。clicked”)“)。hover(以及一个if-else-query结果混乱...

我真的很感激你的帮助我的挑战

一切顺利, ķ

+0

你是不会接受的答案吗? –

回答

1

试试下面的代码。

$("#num_11").hover(
function(){ 
    if(!$(this).hasclass('clicked')){ 
    $("#identification li").each(function() { 
     $("h1", this).fadeIn(); 
     $("span", this).addClass("opague"); 
    }); 
    } 
}, 
function(){ 
    if(!$(this).hasclass('clicked')){ 
    $("#identification li").each(function() { 
     $("h1", this).hide(); 
     $("span", this).removeClass("opague"); 
    }); 
    } 
}); 
$("#num_11").click(function(){ 
$(this).toggleClass('clicked'); 
}); 
+0

谢谢Chamika, 这为我工作!我不知道为什么这个解决方案在我无奈的尝试期间没有出现在我的脑海里;) – koiko

+0

只是谢谢?没有赞成票。没有标记为答案:( –

0

尝试过滤:

$("#num_11").filter(function() { 
    return !$(this).hasClass('clicked'); 
}).hover(
    ... 
); 
+0

嗨rkw,感谢您的快速回答。不幸的是,这个解决方案没有带来结果 - 行为与没有过滤的情况完全相同,但我喜欢你的方法,只需要一行代码 – koiko

+0

我刚刚意识到的东西,是#num_11单个元素,还是它假设代表一组元素? – rkw