Gå til innhold

Bytte url på href med javascript ?


Anbefalte innlegg

Hei!

Jeg skal bytte mellom 2 urler når noen klikker på en link med javascript.

 

Vil egentlig bare veksle mellom disse:

<a href="javascript:document.getElementById('enID').play();">xxx</a>

<a href="javascript:document.getElementById('enID').pause();">xxx</a>

 

 

Noen som kan hjelpe meg litt her ? :innocent:

Lenke til kommentar
Videoannonse
Annonse

Løst med jQuery:

 

$('a').click(function(e) {
 e.preventDefault();

 var url1 = 'javascriptblablabla';
 var url2 = 'javascriptblabla2';
 var href = $(this).attr('href');

 if (href = url1) {
   $(this).attr('href') = url2;
 }
 else {
   $(this).attr('href') = url1;
 }

});

Endret av lassejl
Lenke til kommentar

Jeg skal bytte mellom 2 urler når noen klikker på en link med javascript.

 

Vil egentlig bare veksle mellom disse:

<a href="javascript:document.getElementById('enID').play();">xxx</a>

<a href="javascript:document.getElementById('enID').pause();">xxx</a>

Er det en spesiell grunn til at du velger å endre et javascript i lenkens href med et annet javascrip, fremfor å ha en funksjon knyttet til lenkens onclick som gjør det du ønsker? Og, siden du har endret "enID" til et objekt du kan fyre .play() og .pause() direkte av, hvorfor henger du ikke ønsket funksjonalitet på denne prototypingen?

 

 

Løst med jQuery:

 

$('a').click(function(e) {
 e.preventDefault();

 var url1 = 'javascriptblablabla';
 var url2 = 'javascriptblabla2';
 var href = $(this).attr('href');

 if (href = url1) {
   $(this).attr('href') = url2;
 }
 else {
   $(this).attr('href') = url1;
 }

});

Å sette .preventDefault() så bytte href til et javascript som skal kjøres vil ikke fungere (iom at du stopper lenkens href i å fyre), tenk litt på det. Forøvrig synes jeg man skal vurdere hvor vidt det er trang til å bruke JQuery til å løse noe relativt enkelt. Hva rettferdiggjør de ekstra kb med kode og, mer viktig, et ekstra HTTP-request? JQuery er fint og flott, men det er ikke alltid optimalt.

 

Et alternativ kunne vært noe slikt:

<html>
<head>
	<script>
		var playerControl = function(element)
		{
			var movieContainer = element;
			var movieIsPlaying = false;

			this.togglePlayPause = function()
			{
				if(movieIsPlaying)
				{
					movieContainer.pause();
					movieIsPlaying = false;
				}
				else
				{
					movieContainer.play();
					movieIsPlaying = true;
				}
				return false;
			}
		}
		var myPlayerControl = new playerControl(document.getElementById('enID'));
	</script>
</head>
<body>
	<a href="#" onclick="myPlayerControl.togglePlayPause();">clicky</a>
</body>
</html>

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...