2014-01-13 4 views
1

Я хочу, чтобы моя навигация затухала при нажатии специальной кнопки и исчезала, когда пользователь щелкает в другом месте - не имеет значения где.Javascript - кнопка Click to FadeIn, FadeOut, щелкнув в любом месте

My Script выглядит следующим образом:

function showText() { 
    var spoiler = document.getElementById('spoiler'); 
    var button = document.getElementById('navicon'); 

    if (spoiler.style.display == 'block') { 
     spoiler.style.display='none'; 
     button.value = 'Text einblenden'; 
    } else { 

     spoiler.style.display='block'; 
     button.value = 'Text ausblenden'; 
    } 
    return false; 
} 

мой обходной путь, чтобы дать каждому элементу навигационную следующий фрагмент кода.

onclick="$('#thedivlayeriwanttofadeout').fadeOut('slow');" 

Может кто-нибудь мне помочь?

+0

Вы можете оставить свой HTML-код для навигации? – Sergio

+0

Как выглядит ваш HTML-код? Способ справиться с этим будет состоять в том, чтобы использовать пузырьки событий и присоединить обработчик событий к общему родительскому элементу (например, к телу). –

+0

Кроме того, если вы используете jQuery (как подсказывает кусок кулачка), используйте jQuery и избавьтесь от всего материала 'document.getElementById'. –

ответ

0

Использование пузырьков для прикрепления одного обработчика кликов к общему родительскому элементу (например, body).

Вот простой example:

$(function() { 
    $("#myButton").click(function (e) { 
     $("#hidden").fadeIn(); 
     return false; 
    }); 

    $("#parent").click(function() { 
     $("#hidden").fadeOut(); 
    }); 
}); 

При нажатии кнопки будет исчезать в элементе с идентификатором hidden. Щелчок в любом месте в parent снова исчезнет.