我做错了什么?如果单击该按钮,变量s的值将为10,如果不是,则为0.但它不起作用。
$('button').observe('click', function () {
var clicked = true;
window.clicked = clicked;
});
if (clicked)
{
var s = 10;
}
else
{
var s = 0;
}
答案 0 :(得分:4)
这可能会对您有所帮助 -
<button>
click
</button>
<script>
var clickCounter=0;
var s=0;
alert(s);
$('button').on('click',function(){
var s=10;
alert(s);
});
</script>
最初,变量将存储值0,在单击vutton后,变量的值为10。
答案 1 :(得分:1)
您正在if和else范围内创建变量S. 在if和else之外创建一个var,然后再分配
或者你可以这样做:
var s = 0;
$('button').observe('click', function () {
s = 10;
});
这样,只有在点击后才能将10分配给s。你之前的代码永远不会设置为10
答案 2 :(得分:1)
你到底想要达到什么目的?为什么不在点击事件上设置s = 10
?像这样:
var s = 0;
$('button').click(function () {
s = 10;
console.log(s);
});
console.log(s);
或者,如果您正在尝试观察更改的值,请尝试以下操作:
$('button').click(function () {
object.s = 10;
});
var object = {};
Object.defineProperty(object, 's', {
get: function() {
return this.value;
},
set: function(newValue) {
alert(newValue);
this.value = newValue;
}
});
object.s = 0;