1
這是我的代碼,請問爲什麼onclick事件不適用於輸入的ini元素。爲什麼事件處理程序不能在javascript中的其他函數上創建的元素上工作
的JavaScript:
window.onload = function() {
var img = document.getElementsByTagName('img');
var div = document.createElement("div");
img[0].onclick = function(event) {
document.body.appendChild(div);
var sion = document.getElementsByTagName('div');
var val = document.defaultView.getComputedStyle(sion[0], null);
var mouseX = event.clientX;
var mouseY = event.clientY;
document.styleSheets[0].cssRules[0].style.top = (mouseY - 20) + "px";
document.styleSheets[0].cssRules[0].style.left = (mouseX - 20) + "px";
var ini = document.createElement("input");
document.body.appendChild(ini);
var hoftag = document.styleSheets[0].cssRules[0].style.height;
var result = hoftag.replace("px", "");
result = parseInt(result);
document.styleSheets[0].cssRules[1].style.top = (event.clientY - 20 + result) + "px";
document.styleSheets[0].cssRules[1].style.left = (event.clientX - 40) + "px";
};
ini.onclick = function(event) {
alert("hi");
};
};
HTML:
<img src="jlin.jpg" id="image">
我想我可以通過簡單地omiting使用var定義一個全局變量,但爲什麼在我忽略var後代碼仍然不起作用 – dramasea
'ini.onclick = function(event){alert(「hi」);}};'正在執行,它不會等到「ini」被定義(在onload處理程序中)。所以,一步一步:1. undefined ini獲取onclick處理程序(無意義)2. ini在onload中定義。 3.用戶點擊ini - 沒有處理程序,沒有任何反應 – mishik