Avatar billede nythjem Nybegynder
19. maj 2005 - 18:32 Der er 10 kommentarer og
1 løsning

Dobbelt klik i et link

Hej Alle..

Jeg har dette link, men jeg kunne også godt tænke mig, at kombinere det med en dobbelklik funktion..

Kan det lade sig gøre?

<a href="java script:parent.passText('Side');java script:parent.passText2('Side');">

onDblClick="list_files_dir.asp"
Avatar billede olebole Juniormester
19. maj 2005 - 19:00 #1
<ole>

"Uha ... grim hund dér"  :)
For det første er der ingen grund til at rode med JavaScript pseudo-protokollen:
  <a href="#" onclick="parent.passText('Side');parent.passText2('Side');return false">

Så har vi dit aktuelle problem tilbage. Hvordan er det nu lige, browseren skal vide, du har tænk dig at dobbeltklikke på linket?  ;o)
På det første klik vil de funktioner, du har nu, afvikles ... på det næste vil evt. funktioner, vi lægger ind i 'ondblclick', fyres af. Det er der jo egentlig ikke noget mærkeligt ved  :)

Du kan omgå det med en JS-funktion og noget timing ... der kommer en løsning om lidt

/mvh
</bole>
Avatar billede nythjem Nybegynder
19. maj 2005 - 19:15 #2
Ole du er en ven i nøden :)

Og dejligt du retter i mine fejltagelser :)
Avatar billede olebole Juniormester
19. maj 2005 - 20:08 #3
Tak tak  :)
Her kommer et ret generisk bud, du kan teste på:

<script type="text/JavaScript">
/**************************************************
    To special-funktioner, der kan kalde andre
    funktioner på onclick og ondblclick
*/
function setClick(a, funcA) {
    setTimeout(function(){if(a.getAttribute("clicked")==true){var func=new Function(funcA);func()}}, 300);
    a.setAttribute("clicked", true);
}
function setDblClick(a, funcA) {
    a.setAttribute("clicked", false);
    var func = new Function(funcA);
    func();
}

/**************************************************
    Funktioner, der skal kaldes fra links:
*/
function bla2(txt) {
    alert(txt);
}
function bla(txt) {
    alert(txt);
}
</script>

<a href="#" onclick="setClick(this, 'bla(\'side1.html\')');return false"
    ondblclick="setDblClick(this, 'bla2(\'side2.html\')')">TEST</a>
Avatar billede olebole Juniormester
19. maj 2005 - 20:12 #4
Dit eget link ville således se nogenlunde sådan ud:

  <a href="#" onclick="setClick(this, 'parent.passText(\'Side\');parent.passText2(\'Side\')');return false"
    ondblclick="setDblClick(this, 'enAndenFunction(\'list_files_dir.asp\')')">
Avatar billede olebole Juniormester
19. maj 2005 - 20:15 #5
- og så må du fiedle lidt rundt med timeout-værdien på de 300. Det virker nogenlunde her hos mig og passer med min klik hastighed
Avatar billede olebole Juniormester
19. maj 2005 - 20:28 #6
En anden - og måske lidt kønnere - løsning kunne være:

<script type="text/JavaScript">
function setClick(a) {
    setTimeout(function(){if(a.getAttribute("clicked")==true){var func=new Function(a.href.split("java script:")[1]);func()}}, 300);
    a.setAttribute("clicked", true);
}

/**************************************************
    Funktioner, der skal kaldes fra links:
*/
function bla2(txt) {
    alert(txt);
}
function bla(txt) {
    alert(txt);
}
</script>

<a href="java script:bla('side1.html')" onclick="setClick(this);return false"
    ondblclick="bla2('side2.html');this.setAttribute('clicked',false)">TEST</a>
Avatar billede olebole Juniormester
19. maj 2005 - 20:34 #7
- og ja, jeg ved godt, at jeg nu reintroducerer JS pseudo-protokollen  ;o)
Årsagen er, at jeg gerne vil have funktionen, der skal kaldes, stående for sig selv - så vi undgår at escape gåseøjne og den slags. Vil jeg skrive en funktion i en href, er jeg nødt til at bruge 'java script:', hvis det skal være valid kode  :)

Igen med dine egne funktioner:

  <a href="java script:parent.passText('Side');parent.passText2('Side')" onclick="setClick(this);return false"
    ondblclick="enAndenFunction('list_files_dir.asp');this.setAttribute('clicked',false)">TEST</a>
Avatar billede olebole Juniormester
19. maj 2005 - 20:35 #8
:)
Avatar billede nythjem Nybegynder
19. maj 2005 - 21:14 #9
Tak for kaffe :)
Hold da op Ole, tasteturet gløder og gløder og jeg skylder dig vist et nyt :)

Rigtig mange tak for hjælpen :)
Avatar billede olebole Juniormester
19. maj 2005 - 21:39 #10
Hehe ... selvtak - og tak for points  ;o)
I øvrigt kunne man også skrive setClick sådan:

function setClick(a) {
    setTimeout(function(){if(a.getAttribute("clicked")==true){location.replace(a.href)}}, 300);
    a.setAttribute("clicked", true);
}

... så er der ikke mere for den 25-Øre  ;D
Avatar billede nythjem Nybegynder
20. maj 2005 - 09:01 #11
Super..

Løsningen er allerede i fuldt vigør på the www :)

Rigtig god dag Ole..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger Business Relationship Manager

Green Power Denmark

It-chef med udviklingsfokus

Everllence

Software Engineer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Digital forretningsanalytiker til Cyberdivisionen