我想在用户点击按钮时更改全局变量public static function boot()
{
parent::boot();
self::creating(function($model){
// ... code here
});
}
。但是,它没有被改变。我在Google上研究过这个问题,看起来我做的一切都很正确。
testing.html:
x
tesing.js:
<!DOCTYPE html>
<html>
<head>
<title>Testing</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script type="text/javascript" src="testing.js"></script>
<style>
div {
border: solid 1px orange;
height: 50px;
width: 50px;
font-size: 45px;
text-align: center;
}
</style>
</head>
<body>
<button>Click here</button>
<div><div/>
</body>
</html>
如果我在var x;
$(document).ready(function() {
x = 0;
$("div").text(x);
$("button").on("click", function() {
x = 1;
});
$("div").text(x); //the div stays at "0" even after I click the button
});
之后将$("div").text(x);
置于点击功能中,那么它可以正常工作,但是我需要它来更改全局范围内的x = 1
,而不是本地范围,所以我可以在html文件中的其他JS函数中使用它。
修改
我试图在click函数之外测试x
的原因是因为我需要在html文件中的文档就绪函数中使用更新的x
,所以我不能做所有事情在点击功能内。也许我想要做的是不可能的?但我认为这就是为什么存在全局变量?
答案 0 :(得分:1)
您必须更新点击处理程序中的HTML。 $("div").text(x);
将x
的值指定为$("div")
的文本,它不会将文本绑定到该变量,因此必须在更新变量值时更新文本。 / p>
var x = 0;
$("div").text(x);
$("button").on("click", function() {
$("div").text(++x);
});
div {
border: solid 1px orange;
padding: 10px 15px;
display: inline-block;
font-size: 45px;
text-align: center;
}
div::before {
content: "x = ";
}
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<button>Increment</button><br>
<div></div>