2016-05-29 20 views
0

Ich arbeite gerade an einem Schulprojekt und eine meiner Funktionen läuft nicht, onclick. Ich weiß nicht warum. Ich kenne die Funktion, weil ich einen console.log() Befehl hinzugefügt habe.JS Funktion funktioniert nicht

HTML:

<div id="popup"> 
     <div id="contain"> 
      <div id="advert"><a href="#" onclick="close()" id="close">close</a></div> 
     </div> 
     <div id="block"></div> 
     </div> 

JS:

function close(){ 
       console.log("worked"); 
       $("#popup").hide(); 
      }; 
+3

['close()'] (https://developer.mozilla.org/en-US/docs/Web/API/Window/close) als eine globale ist bereits vom Browser übernommen. Versuchen Sie, die Funktion in 'closePopup()' oder ähnlich umzubenennen, um den Konflikt zu vermeiden. –

+1

Dies ist ein Grund, warum Sie keine Inline-Event-Handler im globalen Gültigkeitsbereich verwenden sollten. –

Antwort

3

function closePopup(){ 
 
    console.log("worked"); 
 
    $("#popup").hide(); 
 
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="popup"> 
 
     <div id="contain"> 
 
      <div id="advert"><a href="#" onclick="closePopup()" id="close">close</a></div> 
 
     </div> 
 
     <div id="block"></div> 
 
</div>

Ihr Code nicht funktioniert, weil, schließen ist eine eingebaute Funktion. Ändern Sie den Namen der Funktion den Trick.

0

Sie haben Ihre Funktion close benannt, die für window.close() reserviert ist und deshalb funktioniert es nicht. Nenne es einfach zu etwas anderem und es wird funktionieren: D Prost!