Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mauricio lanner

Função acontecer em mais de um link

Recommended Posts

Boa tarde, não sou programador java, faço apenas front end em html, mas aos poucos to me virando pra fazer alguma coisa em jquery.

Hoje estou tentando criar um ambiente app todo em html5 então estruturei em um iframe e o menu leva para as páginas.Pois bem, o menú tem uma animação quando clicado para abrir, então tem um botão padrão para fechar ele, em que ele faz a mesma animação só que ao contrário, o grande problema é que não consigo duplicar a ação, tipo se ele ja está em uso em um lin com o id="close-button" não posso por em outro link que ele para de funcionar. Alguém sabe como posso solucionar isso ou se tem alguma biblioteca pronta onde posso adaptar a minha necessidade?

eis o js da animação:

(function() {

	var bodyEl = document.body,
		content = document.querySelector( '.content-wrap' ),
		openbtn = document.getElementById( 'open-button' ),
		closebtn = document.getElementById( 'close-button' ),
		isOpen = false;

	function init() {
		initEvents();
	}

	function initEvents() {
		openbtn.addEventListener( 'click', toggleMenu );
		if( closebtn ) {
			closebtn.addEventListener( 'click', toggleMenu );
		}

		// close the menu element if the target it´s not the menu element or one of its descendants..
		content.addEventListener( 'click', function(ev) {
			var target = ev.target;
			if( isOpen && target !== openbtn ) {
				toggleMenu();
			}
		} );
	}

	function toggleMenu() {
		if( isOpen ) {
			classie.remove( bodyEl, 'show-menu' );
		}
		else {
			classie.add( bodyEl, 'show-menu' );
		}
		isOpen = !isOpen;
	}

	init();

})();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode usar classes?

var closebtns = document.getElementsByClassName("close-button");

function element_addEvent(name, callback, el) {
    if(typeof el.addEventListener === "function") {
        el.addEventListener(name, callback);
    }else el.attachEvent("on" + name, callback);
}

for(var i = 0, btn ; btn = closebtns[i]; i ++) element_addEvent("click", toggleMenu, btn);

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.