Kom ihåg mig?
Home Menu

Menu


Stänga popup och samtidigt öppna ny url

 
Ämnesverktyg Visningsalternativ
Oläst 2013-05-13, 11:47 #1
MusikMixen MusikMixen är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Feb 2008
Inlägg: 1 527
MusikMixen MusikMixen är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Feb 2008
Inlägg: 1 527
Standard Stänga popup och samtidigt öppna ny url

Hello!

Har letat lite på google men hittar inte riktigt det jag behöver.
Jag öppnar en popup ruta med lyssna länkar i. Eftersom det finns en inbyggd mediaspelare i popup fönstret så hade det varit bra om rutan kunde stängas automatiskt när man klicka på en direkt lyssnalänk.

Vore tacksam för en kod eller länk till sida. Det handlar om 7 länkar sammanlagt i popup fönstret.
MusikMixen är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-05-13, 11:55 #2
jonssondesign jonssondesign är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2010
Inlägg: 709
jonssondesign jonssondesign är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2010
Inlägg: 709
Lägg in en klass på varje länk. Låt oss säga att klassen heter, linkre.

Sen skriver du jquery som kollar om du klickar på någon av länkarna/elementen som har klassen "linkre" i sig, och redirectar dig isåfall till en annan sida.:

Kod:
$('.linkre').click(function() {
   window.location.replace("http://valfrisida.se");
});
jonssondesign är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-05-13, 11:59 #3
MusikMixen MusikMixen är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Feb 2008
Inlägg: 1 527
MusikMixen MusikMixen är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Feb 2008
Inlägg: 1 527
Citat:
Ursprungligen postat av jonssondesign Visa inlägg
Lägg in en klass på varje länk. Låt oss säga att klassen heter, linkre.

Sen skriver du jquery som kollar om du klickar på någon av länkarna/elementen som har klassen "linkre" i sig, och redirectar dig isåfall till en annan sida.:

Kod:
$('.linkre').click(function() {
   window.location.replace("http://valfrisida.se");
});
Tack för ditt svar! Jag kör vanlig html i popup fönstret.
MusikMixen är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-05-13, 12:54 #4
jonssondesign jonssondesign är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2010
Inlägg: 709
jonssondesign jonssondesign är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2010
Inlägg: 709
Det antog jag också

Som sagt, lägg bara till en klass som heter linkre på varje länk som du vill ska redirecta till en ny sida, och sen lägger du in js koden vart du vill i din html kod, eller om du skapar en ny .js fil och inkluderar den i din html kod.

Exempel:

<a href=".." title="" class="linkre">...</a>
jonssondesign är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-05-13, 13:44 #5
MusikMixen MusikMixen är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Feb 2008
Inlägg: 1 527
MusikMixen MusikMixen är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Feb 2008
Inlägg: 1 527
Citat:
Ursprungligen postat av jonssondesign Visa inlägg
Det antog jag också

Som sagt, lägg bara till en klass som heter linkre på varje länk som du vill ska redirecta till en ny sida, och sen lägger du in js koden vart du vill i din html kod, eller om du skapar en ny .js fil och inkluderar den i din html kod.

Exempel:

<a href=".." title="" class="linkre">...</a>
Då är jag med, ska testa det. Tack för hjälpen!
MusikMixen är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-05-13, 13:51 #6
yakuzaemmes avatar
yakuzaemme yakuzaemme är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2012
Inlägg: 773
yakuzaemme yakuzaemme är inte uppkopplad
Mycket flitig postare
yakuzaemmes avatar
 
Reg.datum: Jun 2012
Inlägg: 773
Vill du även köra lite HTML5 (inte rekommenderat om dina besökare kör exempelvis IE 8 eller lägre) så kan du köra ditt egna data-attribut på varje länk, exempelvis:

Citat:
<a href="#" class="linkre" data-url="www.example.com"/>Example.com</a>
Och sedan jQuery:

Citat:
$("a.linkre").click(function() {
//Stäng popup här, exempelvis $(this).parent().hide();
window.location.replace($(this).data("url"));
});
Om sidan "hoppar" innan den stänger popup/redirectar, kör javascript:void(0) istället för # i anchor-elementet. Lycka till!
yakuzaemme är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-05-14, 01:40 #7
Oscarip Oscarip är inte uppkopplad
Medlem
 
Reg.datum: Apr 2008
Inlägg: 69
Oscarip Oscarip är inte uppkopplad
Medlem
 
Reg.datum: Apr 2008
Inlägg: 69
Bra initiativ boys, men känner att det går att förbättra koden lite.

Har inkluderat jQuery DOM ready så har du redan en sådan, klistra bara in själva clicket.

Kod:
$(function(){
	$('a.linkre').on('click', function(){
		window.location.replace($(this).data('url'));
		return false;
	});

});
Oscarip är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-05-14, 02:18 #8
jonssondesign jonssondesign är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2010
Inlägg: 709
jonssondesign jonssondesign är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2010
Inlägg: 709
Bra Oscar!

Men varför inte använda kortkommandot .click() istället för .on("click",)?

Jag anser att man skall försöka använda sig av .click() så ofta man kan på html elements som laddats in från början. Och ex. .live() på de elements som laddats in EFTER att DOM har laddats in. Däremot så kan .on() användas till andra saker, men om det finns ett kortkommando skapat för just klick events, varför inte använda det då?
jonssondesign är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-05-14, 02:30 #9
yakuzaemmes avatar
yakuzaemme yakuzaemme är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2012
Inlägg: 773
yakuzaemme yakuzaemme är inte uppkopplad
Mycket flitig postare
yakuzaemmes avatar
 
Reg.datum: Jun 2012
Inlägg: 773
Citat:
Ursprungligen postat av jonssondesign Visa inlägg
Bra Oscar!

Men varför inte använda kortkommandot .click() istället för .on("click",)?

Jag anser att man skall försöka använda sig av .click() så ofta man kan på html elements som laddats in från början. Och ex. .live() på de elements som laddats in EFTER att DOM har laddats in. Däremot så kan .on() användas till andra saker, men om det finns ett kortkommando skapat för just klick events, varför inte använda det då?
click är en funktion som egentligen använder on, och on har även samma funktionalitet som live. Dock ser jag ingen som helst anledning att binda den direkt till eventhanteraren (alltså on("click")) då det knappast kommer göra någon förbättring i detta fallet - dessutom så är det mycket enklare för en nybörjare att förstå click.

Sedan jQuery 1.7 tror jag även att båda laddas in i minnet ändå, och konverteringen från click till on("click") går snabbare än snabbast.


Ska vi ändå vara petiga ska du inte köra return false; i detta fall då det utför 3 olika "funktioner" (preventDefault, stopPropagation, och avbryter callback execution). Det enda som behövs i detta fall är preventDefault tillräckligt. Men somsagt, sjukt onödigt att vara så petig när det gäller en sida som denna.
yakuzaemme är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-05-14, 12:44 #10
Alexs avatar
Alex Alex är inte uppkopplad
Administratör
 
Reg.datum: Sep 2004
Inlägg: 1 621
Alex Alex är inte uppkopplad
Administratör
Alexs avatar
 
Reg.datum: Sep 2004
Inlägg: 1 621
Ska ni använda jQuery kan ni lika väl vara konsekventa och använda .on() överallt. click är en genväg. Precis som live() var till bind(). live() är nu deprecated och det kanske .click() blir i framtiden också. Det finns dessutom fler fördelar med att köra .on() framför click. Har du dynamiskt innehåll som laddas in till DOMen i efterhand så kan du även styra över det. Good practise att vara konsekvent.

yakuzaemme - FYI: Det spelar ingen roll vilken webbläsare det handlar om. Du kan ha vilka attribut på ett element du vill, och jQuery är tillräckligt smart för att plocka ut datan ur attributet på det sättet du har skrivit . Inte en HTML5-specifik implementation när det gäller jQuery. Snackar vi 'native' javascript är det en annan femma.
__________________
@Zn4rK - Börja blogga - Paintball i Göteborg
Det jag skriver är mina personliga åsikter och återspeglar inte vad WN eller andra företag jag representerar tycker.
Alex är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 14:50.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017