jQuery: alternare valori su un evento

Short link

Vi potrà capitare di alternare due valori su un unico evento di jQuery. In questo caso la soluzione sta nella memorizzazione temporanea dei valori.

Una richiesta fatta su un forum di supporto a jQuery prevedeva il caso in cui l'URL di un link HTML doveva alternarsi al click sul link stesso. La soluzione proposta suggeriva l'uso del metodo .toggle(). Ma questo metodo è stato deprecato.

In realtà la soluzione è molto più semplice:


var $link = $( "#link" ),
	origHref = $link.attr( "href" ),
	newHref = "https://test.localhost";
	
	$link.data( "orig-href", origHref );
	
	$link.click(function() {
		var href = $( this ).attr( "href" );
		if( href == $( this ).data( "origHref" ) ) {
			$( this ).attr( "href", newHref );
		} else {
			$( this ).attr( "href", origHref );
		}
	});

In pratica occorre semplicemente confrontare due URL, ossia quello iniziale e quello da sostituire, alternandoli di volta in volta.