Jump to content
Sign in to follow this  
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();

})();

Share this post


Link to post
Share on other 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);
  • +1 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.