2012-06-08 2 views
1

Я пытаюсь скрыть главный div и показать другой, с jquery, я закодировал это, но его не работает. Это jquery и css.Скрыть/показать Divs с помощью эффектов JQuery

  <script> 
$(".mib").click(
function Mision() { 
     var $next = $('#content #mision'); 
     var $active = $('#content .activec'); 
     $active.fadeOut(function(){ 
     $active.removeClass('activec'); 
     $next.fadeIn().addClass('activec'); 
      }); 
      }); 

    </script> 

<style> 
#content div { 
    display: none; 
    position: relative; 
    top: 0; 
    left: 0; 
} 
#content div.activec { 
    display: block; 
} 
</style> 

и вот HTML

<div id="menu"> 
<a href="" class="mib">Mision(actually here goes an image)</a> 
</div> 

<div id="content"> 
<div id="intro" class="activec">Intro Text</div> 
<div id="mision">Mision Text</div> 
</div> 

я пересмотрел код, и я до сих пор не могу найти ошибку .. Пожалуйста, помогите :)

+0

Не могли бы вы объяснить, что именно, это 'не работает'? Что это значит? –

+0

Это не так, он работает, когда вы нажимаете «mision» в меню, но ничего не происходит. Предполагалось, что div, называемый intro, исчезнет, ​​и появится div, называемый mision. – Josh

ответ

1

Попробуйте это:

И инкапсулировать скрипт в ready обратного вызова:

$(document).ready(function(){ 
    $(".mib").click(function Mision() { 
     var $next = $('#content #mision'); 
     var $active = $('#content .activec'); 
     $active.fadeOut(function(){ 
     $active.removeClass('activec'); 
     $next.fadeIn().addClass('activec'); 
     }); 
    }); 
}); 

DEMO

+0

OMG, он работает! Я пропустил готовый обратный вызов .. Большое спасибо! Я очень оценил ваш ответ! :) – Josh

+2

Ew @ 'javascript: void'. Вместо этого используйте 'e.preventDefault()' :) –

+0

Я буду, спасибо. – Josh

0

Попробуйте изменить

$(".mib").click(
function Mision() { 

До

$(".mib").click(
function() { 

(Nevermind на последнее редактирование, у вас есть нужное количество закрывающих скобок.)

+0

все еще не работает. :( – Josh

2

Держите его просто - http://jsfiddle.net/4KP5F/1/

$(".mib").on("click", function(e) { 
    e.preventDefault(); 

    $("#intro").fadeOut(400, function() { 
     $("#mision").fadeIn(400); 
    }); 
}); 
+0

Отличный ответ. –

+0

Он тоже работает! Спасибо большое !, окончательный проект его немного сложнее, поэтому мне нужно использовать средство для удаления класса, я люблю это сообщество, быстрые ответы. :) – Josh

0
$(".mib").bind('click',function Mision() { 
     var $next = $('#content #mision'); 
     var $active = $('#content .activec'); 
     $active.fadeOut(function(){ 
     $active.removeClass('activec'); 
     $next.fadeIn().addClass('activec'); 
     }); 
    }); 
Смежные вопросы