2017-09-28 8 views
-1

Ich versuche Onmouseover eine Variable zu ändern, das ist mein Code:JS Ändern variabile Onmouseover

$(document).ready(function() { 
    var x; 
    $(".button").hover(function() { 
     console.log (x); 
    });   
}); 
</script> 
<div class="button" onmouseover="x = 'y'"> Button </div> 

Antwort

1

Sie haben zwei x Variablen.

  • Die globalex, die implizit erstellt, wenn Sie 'y' zuweisen
  • Die x im Rahmen der anonymen Funktion, die Sie ready() geben, die explizit von var x; erstellt wird.

Sie geben einen Wert an und protokollieren den Wert des anderen.


Verwenden Sie keine intrinsischen Ereignisattribute. Binden Sie einfach Ihre Event-Handler über JavaScript. Dann können Sie Ihren Umfang freihalten und sicherstellen, dass Sie nur mit einer einzigen x handeln.

$(function() { 
 
    var x; 
 
    $("button").on('mouseover', setValue); 
 
    $("button").on('mouseover', logValue); 
 

 
    function setValue() { 
 
    x = "y"; 
 
    } 
 

 
    function logValue() { 
 
    console.log(x); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button type="button">Button</button>


NB: HTML hat ein ganz gutes Button-Element. Sie müssen keine Klasse verwenden, um das darzustellen.

+0

Vielen Dank, es funktioniert, ich muss nur nicht die x Variabel in der Funktion deklarieren –