使用两个var作为if的比较运算符

时间:2014-10-23 19:09:12

标签: jquery html

我编写了一个多级推送菜单的脚本,但我已经碰壁了。

结构:

菜单链接1 - >打开菜单B

菜单A链接2 - >打开菜单C

当我点击链接1时,它打开菜单B,当我点击链接2时,它关闭菜单B并打开菜单C.确定

当我点击链接1时,它会打开菜单B,但是当我再次点击链接1时,我只希望它关闭所述菜单而不再打开它。


所以我存储了该级别的打开菜单(div存储在全局var $ 2real中)并存储目标菜单以打开同一级别(div存储在全局var $ 2target中)和I在调用函数打开菜单之前添加了一个if($ 2target!= $ 2real)(因此它不会再次打开相同的菜单)。

使用console.log我可以看到$ 2target实际上是$ 2real,但无论如何都是if。我测试使用(1!= 1)并且它有效,所以我猜问题是($ 2target!= $ 2real)

我可以发布代码,但它变得非常大。 (并且非常漂亮,因为我没有太多经验)

2 个答案:

答案 0 :(得分:0)

因为您要比较jQuery对象,而不是元素

if ($2target.get(0) != $2real.get(0))

或使用is()

if ($2target.is($2real))

答案 1 :(得分:0)

我在我的一个项目中这样做。我的代码看起来像这样

function toggleSublinks(link){

  var href = $(link).attr('href');
  $target = $(href);
  if($target.hasClass('active')){
    $target.slideUp().removeClass('active'); 
  } else {
    $('.top-link').slideUp().removeClass('active');
    $target.slideDown().addClass('active');
  }
}

然后在on document ready函数

$('.top-link').click(function(e){
  e.preventDefault();
  toggleSublinks(this);
});