我有三个div,每个div都有一个onclick( a , b 和 c )。我希望每个人都将唯一值发送回全局变量 x (例如 a 使 x = 1, b 使 x = 2等)。我一下子取得了一些适度的成功,但现在看起来代码只是从上到下运行,忽略了其他功能,只是让 x 等于最后一个函数的更新值, C
HTML:
Public Function ScaleImage(ByVal OldImage As System.Drawing.Image, ByVal TargetHeight As Integer, ByVal TargetWidth As Integer) As System.Drawing.Image
Dim NewHeight As Integer = TargetHeight
Dim NewWidth As Integer = NewHeight / OldImage.Height * OldImage.Width
If NewWidth > TargetWidth Then
NewWidth = TargetWidth
NewHeight = NewWidth / OldImage.Width * OldImage.Height
End If
Return New Bitmap(OldImage, NewWidth, NewHeight)
End Function
JS:
<div id='testChoice'>Choose action</div>
<div id='a'>a</div>
<div id='b'>b</div>
<div id='c'>c</div>
变量 x (它只显示在HTML中用于测试)是我想要更新的内容。它将更改为int值以用于其他函数。这个想法是用户的选择将更新变量,然后传递给其他函数。现在, x 总是以 c 形式出现,并且没有识别出onclicks。
感谢您的帮助!
答案 0 :(得分:0)
这对你有所帮助。对于OnClick
,你应该只提供功能名称。 aChoice()
实际上会在添加onclick
侦听器时调用。你得到了最后一个函数输出,因为cChoice是按顺序执行的最后一个函数。
var x = "";
function aChoice() {
x = "a";
document.getElementById("testChoice").innerHTML = x;
}
function bChoice() {
x = "b";
document.getElementById("testChoice").innerHTML = x;
}
function cChoice() {
x = "c";
document.getElementById("testChoice").innerHTML = x;
}
document.getElementById("a").onclick = aChoice;
document.getElementById("b").onclick = bChoice;
document.getElementById("c").onclick = cChoice;
<div id='testChoice'>Choose action</div>
<div id='a'>a</div>
<div id='b'>b</div>
<div id='c'>c</div>
答案 1 :(得分:0)
你重复了很多代码。这将是一种更简单的方法来实现您的尝试。
var x = "";
function choice(value) {
x = value;
document.getElementById("testChoice").innerHTML = value;
}
document.getElementById("a").onclick = choice.bind(null, "a")
document.getElementById("b").onclick = choice.bind(null, "b")
document.getElementById("c").onclick = choice.bind(null, "c")
&#13;
<div id='testChoice'>Choose action</div>
<div id='a'>a</div>
<div id='b'>b</div>
<div id='c'>c</div>
&#13;
此外,您当前的代码始终显示c
,因为您的最后一行只执行一次。最后一次为x
分配值是指cChoice()
。
答案 2 :(得分:0)
使用let
或关闭方式可以是一个非常好的解决方案
var test = document.querySelectorAll(".test");
for (let i = 0; i < test.length; i++) {
test[i].onclick = function () {
document.getElementById("testChoice").innerHTML = test[i].innerHTML;
}
}
&#13;
<div id='testChoice'>Choose action</div>
<div class="test">a</div>
<div class="test">b</div>
<div class="test">c</div>
&#13;