Sie haben zwei x
Variablen.
- Die globale
x
, 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.
Vielen Dank, es funktioniert, ich muss nur nicht die x Variabel in der Funktion deklarieren –