var tmp = "";
function putItem()
{
this.innerHTML = "<img src = 'image/"+tmp+".png'>";
}
我还有 td
来调用此
<img src = 'images/wood.png' onclick = 'tmp = "wood";'>
<td onclick = "grid1 = tmp; checkEmpty(); putItem(this);">
我通过将"<img src = 'image/"+tmp+".png'>";
作为一个变量来测试它,当我返回变量时tmp不是空字符串时它出现为"<img src = 'image/.png'>"
,即它忽略了tmp。
任何帮助?
我试图制作&#34; Minecraft(c)制作表&#34;用于Web开发项目
答案 0 :(得分:2)
问题已更改。 现在似乎唯一的问题是您需要使用.call
在{{this
中设置putItem
值1}}。
<img src = 'images/wood.png' onclick = 'tmp = "wood";'>
<td onclick = "grid1 = tmp; checkEmpty(); putItem.call(this);">
原始回答
我假设不是这个......
<!-- v---- assign empty string to global grid1 variable -->
<td onclick = "grid1 = tmp; checkEmpty(); putItem(this);">
你想要这个......
<!-- v---- assign "grid1" string to global tmp variable -->
<td onclick = "tmp = 'grid1'; checkEmpty(); putItem.call(this);">
<!-- set the value of "this" in "putItem"---^ -->
现在您将"grid1"
字符串分配给tmp
变量,当您致电putItem()
时,您正在使用.call
设置其this
价值。
那说,为什么不只是传递字符串?
而不是使用全局变量?function putItem( str ) {
this.innerHTML = "<img src = 'image/" + str + ".png'>";
}
<td onclick = "checkEmpty(); putItem.call(this, 'grid1');">