2014-01-13 8 views
0

В этом коде im, сравнивая, если привязанный якорь имеет другую строку атрибута rel в сравнении с строкой id формы.Условие IF не работает должным образом

$('.title a').each(function(i){ 
    $('.title a:eq('+i+')').click(function(e){ 
     e.preventDefault(); 

     $('.title a').removeClass('active'); 
     $(this).addClass('active'); 

     var rel  = $(this).attr('rel'), 
      formId = $('form').attr('id'); 

     if (formId!=rel) { 
      $('form[id!='+rel+']').fadeOut(200, function(){ 
       $('form[id='+rel+']').fadeIn(200); 
      }); 
     } 
    }); 
}); 

первый раз, когда я нажимаю, он работает хорошо. Но если я нажму снова, это не сработает, и я не смогу найти проблему, может кто-нибудь мне помочь?

jsfiddle: http://jsfiddle.net/z4MMw/

+1

Почему 'каждый', вы могли бы сделать это с помощью' $ (this) '? – Abhitalks

+3

Во-первых, ваш цикл кажутся бесполезными. Во-вторых, можете ли вы разместить соответствующий HTML-код и предоставить jsfiddle –

+0

jsfiddle – LorDex

ответ

2

Вы можете попробовать:

$('.title a').click(function(e){ 
    e.preventDefault(); 

    $('.title a').removeClass('active'); 
    $(this).addClass('active'); 

    var rel = $(this).attr('rel'); 

    $('form#' + rel).fadeIn(200, function(){ 
    $('form:not(#' + rel + ')').fadeOut(200); 
    }); 
}); 

Я перевернутый замирает, поэтому, если есть форма с заданным идентификатором, он будет fadeId, в противном случае ичто будет.

+0

Чувак, спасибо! Оно работало завораживающе! –

+0

@RamonVasconcelos Если вы нашли правильный ответ, не забудьте принять его. – hsz

Смежные вопросы