我有两个功能。第一个功能只有在你点击按钮"演示"时才有效,第二个功能必须工作当你点击按钮来计算变量" c"。但它没有正确的工作。为什么?
我需要在代码中更改它的工作正确吗?我做错了什么以及如何更好地完成我的代码。给一些解决方案PLZ。
P.S。:正确 - 当你点击按钮然后功能aaa()必须工作并获得var" c"值= 7;
<a id="demo" onclick="document.getElementById('demo').onclick()">Button</a>
document.getElementById('demo').onclick = function() {
a = 5;
document.getElementById('demo').onclick.called=true;
alert(a);
return a;
}
function aaa() {
if(document.getElementById('demo').onclick.called) {
c = document.getElementById('demo').onclick() + 2;
alert(c);
return c;
} else {
alert("no function");
}
}
aaa();
答案 0 :(得分:0)
问题是您的代码在点击aaa()
时未调用button
。您获得的警报是事件监听器。
您可以尝试以下代码:
document.getElementById("demo").onclick = function demoClick() {
a = 5;
document.getElementById('demo').onclick.called = true;
alert("Not aaa: " + a);
return a;
}
function aaa() {
if (document.getElementById('demo').onclick.called) {
c = document.getElementById('demo').onclick() + 2;
alert("aaa: " + c);
return c;
} else {
alert("no function");
}
}
&#13;
<a id="demo">Button</a>
<button onclick="aaa()">Check Sum</button>
&#13;
另外,如果你这样做:
document.getElementById('demo').onclick = function()
你不需要这个:
<a id="demo" onclick="document.getElementById('demo').onclick()">Button</a>
^^^^^^^
你可以尝试这样的事情:JSFiddle。
注意:如果向元素添加多个事件侦听器,则无法确定哪个事件将首先执行。
function aaa() {
if (document.getElementById('demo').onclick.called) {
var c = getValue() + 2;
alert("Updated Value (Sum): " + c);
return c;
} else {
alert("no function");
updateState();
}
}
function getValue() {
var a = 5;
alert("Base Value: " + a);
return a;
}
function updateState(){
document.getElementById('demo').onclick.called = true;
}
function registerEvents(){
document.getElementById("demo").onclick = aaa;
}
registerEvents();
&#13;
<a id="demo">Button</a>
&#13;