2013-08-21 3 views
1

У меня есть щелчок функцияJQuery несколько селекторов, исчезают и из

$("#productlink1").click(function() { 
    $('#productstitle').fadeOut(1000, function(){ 
     $('#productstitle').html('<h4>Corporate Promotions </h4>').fadeIn(1000); 
     }); 
    $('#productscontent,#flexibility').fadeOut(1000, function(){ 
     $('#corporate').fadeIn(1000); 
     }); 

    remove(); 
    $(this).addClass('active'); 
return false; 
}); 

Так что, когда я нажимаю на ссылку, название затухает, то новое название выцветает, все работает нормально

Однако вторая часть кода, увядание в появляется перед гаснуть эта линия

$('#productscontent,#flexibility').fadeOut(1000, function(){ 
      $('#corporate').fadeIn(1000); 
      }); 

Однако, если я только что один элемент, выбранный его работает отлично

$('#productscontent').fadeOut(1000, function(){ 
       $('#corporate').fadeIn(1000); 
       }); 

Есть ли проблема с несколькими селекторами?

Благодаря

+0

Пожалуйста, ваши HTML. Я предполагаю, что либо '# productscontent', либо' # flexible' запускаются невидимыми, поэтому обратный вызов выполняется немедленно. –

+0

Извините, я не хочу размещать слишком много строк кода, но да #flexibility и #corporate как начало, так и отображение: none в css и #productscontent показано – user2389087

+0

Слишком много кода в вопросе лучше, чем слишком мало;) –

ответ

1

http://jsfiddle.net/XgtVw/

$('#link').click(function() { 
    $("#div1, #div2").each(function(){ 
    $(this).fadeOut(1000, function(){ 
     $('#div3').fadeIn(1000); 
    }); 
}); 
}) 
+0

Спасибо за ввод – user2389087

+0

Это работает или нет? –

+0

обновил jsfiddle http://jsfiddle.net/XgtVw/5/, он отлично работает, пока мне не нужно снова скрывать элементы сейчас на шоу – user2389087

1

От jQuery .fadeOut() documentation:

Если несколько элементов анимации, важно отметить, что обратного вызова выполняется один раз в совпавшего элемента, а не один раз для анимации в целом ,

0

DEMO

Надеется, что вы скрыли элемент corporate на первом

$(document).ready(function(){ 
    $("#corporate").hide();  // hiding corporate on document load 
    $("#productlink1").click(function() { 
     $('#productstitle').fadeOut(1000, function(){ 
      $('#productstitle').html('<h4>Corporate Promotions </h4>').fadeIn(1000); 
      }); 
     $('#productscontent,#flexibility').fadeOut(1000, function(){ 
      $('#corporate').fadeIn(1000); 
      }); 

     remove(); 
     $(this).addClass('active'); 
    return false; 
    }); 
    }); 
+0

Спасибо за ваш комментарий, это ошибка на скрипте JS http://jsfiddle.net/LAPaS/7/ скрытые элементы исчезают до того, как исчезнут – user2389087

1

Спасибо за все предложения, я никак не мог заставить выше работать ,

по существу, как элемент скрыт, его выцветание сразу, а «Hacky» способ обойти это для меня было просто добавить задержку

$("#productlink1").click(function() { 
    $('#productstitle').fadeOut(1000, function(){ 
     $('#productstitle').html('<h4>Corporate Promotions </h4>').fadeIn(1000); 
     }); 
    $('#productscontent,#flexibility').fadeOut(1000, function(){ 
     $('#corporate').delay(1000).fadeIn(1000); 
     }); 

    remove(); 
    $(this).addClass('active'); 
return false; 
}); 

Это остановило фейдер, пока другие элементы не были затемнены , его не так, как я хотел исправить это, но он работает пока.

С другими ответами то же самое, что происходит

элементы уже скрыты будет исчезать первый

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