Avatar billede peleiden Nybegynder
09. april 2005 - 11:47 Der er 15 kommentarer

fyre to event på samme tid

Hej Eksperter

Jeg har et lille problem med at jeg gerne vil kunne fyre to event af på samme tid. Href og onclick. Tilsyneladende kan jeg ikke fyre onclick-eventet når der er et link i href. Hvad kan jeg gøre.

<div id="div1">
  <a onclick="fnsDoSome()" href="http://www.dr.dk/" target="_blank">link1</a>
</div>
<div id="div2">
  <a href="http://www.dr.dk/" target="_blank">link1</a>
</div>
Avatar billede mikkelk Nybegynder
09. april 2005 - 13:15 #1
Det fungerer nu ellers fint her - testet i firefox
Avatar billede mikkelk Nybegynder
09. april 2005 - 13:16 #2
Og i IE
- tror du ikke der er noget galt med din funktion(fnsDoSome)???
Avatar billede mikkelk Nybegynder
09. april 2005 - 13:17 #3
Jeg har testet det med funktionen:
function fnsDoSome(){
    alert("hej")
}
Avatar billede psykochicken Nybegynder
09. april 2005 - 13:18 #4
Det burde du kunne....du kan også fyre flere events af i onclick. Jeg har brugt
<a onclick="ViewData(example2,'visible');return status2();" href="side.htm">LINK</a>
OnClick henter en popuptekst og putter en tekst i statuslinien. href åbner en side i en iframe.

Hvad er det du prøver at få den til...eksempel ?
Avatar billede peleiden Nybegynder
10. april 2005 - 13:20 #5
Hej Tak for svar, jeg proøver lige at uddybe hvad jeg vil.
Følgende virker også fint her.
<a onclick="ViewData();" href="side.htm">LINK</a>

Problemet er at jeg ikke har mulighed for at indsætte attributten onclick i a-taget. I forvejen
er der et a-tag uden om det a-tag som jeg vil indsætte onclick-attributten ind i..således:

<div id="div1"><a href=""><a href="http://www.dr.dk" target="_blank">LINK</a></a></div>

Når siden er loadet skal det gerne se således ud

<div id="div1"><a href=""><a onclick="ViewData();" href="http://www.dr.dk" target="_blank">LINK</a></a></div>

og dette kan jeg også få den til, men så virker onclickeventet ligepludseligt ikke:

<!-- ####### MIN KODE ###### -->

<script>
    window.onload = function(){
        document.getElementById('div1').children(1).onclick = "ViewData()";
    }

    function ViewData(){
        alert('fff');
    }
   
</script>


<div id="div1"><a href=""><a href="http://www.dr.dk" target="_blank">LINK</a></a></div><br  /><br />

<!-- DOM LINK -->
<a href="java script: var o=document.documentElement,p,w=window.open('','_blank'),d=w.document;d.write('&lt;html&gt;&lt;body&gt;&lt;pre&gt;');z('&lt;'+o.tagName);for(var i=0;p=o.attributes[i],i!=o.attributes.length;i++)if(p.specified)z(' '+p.nodeName+'=&quot;'+p.nodeValue+'&quot;');z('&gt;'+o.innerHTML+'&lt;/'+o.tagName+'&gt;');d.write('&lt;/pre&gt;&lt;/body&gt;&lt;/html&gt;');d.close();function z(s){d.write(s.replace(/&amp;/g,'&amp;amp;').replace(/&lt;/g,'&amp;lt;').replace(/&gt;/g,'&amp;gt;').replace(/&quot;/g,'&amp;quot;'));}">open DOM</a>

<!-- ####### ######## ###### -->

Hvis man kører denne kode og trykker på 'Open dom' kan man se at onclickeventet ligger hvor det skal men det bliver ikke fyret.
Avatar billede psykochicken Nybegynder
11. april 2005 - 01:42 #6
Du kan bruge din kode på denne måde (virker dog kun i IE):

<script>
    window.onload = function(){
    document.getElementById('div1').children(1).href = "java script:(onClick=status(),goToURL1())";
    }
    function status(){
        alert('fff');
    }
    function goToURL1() {
    window.open("http://www.dr.dk");
    } 
</script>
<DIV id=div1><a href=""><A href="">Link</a></a></div><br><br>

************************
Eller på denne måde (IE/NS/MOZ):
<script>
    function status(){
        alert('fff');
    }
    function goToURL1() {
    window.open("http://www.dr.dk");
    } 
</script>
<DIV id=div1><a href=""><A href="java script:(onClick=status(),goToURL1())">Link</a></a></div><br><br>

**********
Og sikkert også på andre måder :)
Avatar billede roenving Novice
11. april 2005 - 01:55 #7
Et a-tag i et a-tag ?-)
Avatar billede peleiden Nybegynder
11. april 2005 - 08:02 #8
Ja i know, men jeg har ikke mulighed for at ændre dette.
I princippet kan jeg godt bruge det hvis det bare er det ene a-tag, det gør ingen forskel.
Avatar billede mikkelk Nybegynder
11. april 2005 - 08:18 #9
Som roenving også skriver, hvorfor er det lige at du bruger a-tags inde i hinanden? Kan du ikke bare fjerne det yderste?
Avatar billede psykochicken Nybegynder
11. april 2005 - 10:00 #10
Ja nu kunne jeg altså også godt tænke mig at vide, hvorfor du ikke har mulighed for at ændre det yderste a-tag ?
Avatar billede peleiden Nybegynder
11. april 2005 - 17:54 #11
Grunden til at jeg ikke kan ændre i det yderste a-tag, er fordi at det automatisk bliver genreret af det CMS-system som vi bruger. Der for skal jeg på en window.onload indsætte onclick-eventet.
Avatar billede roenving Novice
11. april 2005 - 20:25 #12
Hvis du skal sætte et event onload skal du ud i en dobbelt anonym funktion:

window.onload = function(){
  document.getElementById('mitLink').onclick = function(){
    //gør et eller andet
    alert(this.id);
  }
}

-- eller kalde funktionen som anonym:

window.onload = function(){
  document.getElementById('mitLink').onclick = ViewData;
}
Avatar billede psykochicken Nybegynder
12. april 2005 - 13:38 #13
Nemlig eller bare:
<script type="text/javascript">
window.onload = function(){
  document.getElementById('div1').onclick = function(){
  alert('Din besked');
  }
}
</script>
<div id="div1"><a href=""><a href="http://www.dr.dk" target="_blank">LINK</a></a></div><br><br>
Avatar billede roenving Novice
12. april 2005 - 16:32 #14
>>psyko

-- hvad var det lige, du tilføjede her sidst ?-)
Avatar billede psykochicken Nybegynder
12. april 2005 - 17:48 #15
sorry...hånden var hurtigere end øjet...havde ikke lige læst hele din kommentar. Glem alt efter godmorgen ;-)
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