2016-10-16 23 views
1

我是JavaScript新手,但擁有Java/C++的一些經驗。所以,我嘗試使用下面的代碼來設置一些簡單的事件,我創建一個新的IMG元素的屬性:無法在Javascript中設置新的IMG事件屬性

var square = document.createElement("IMG"); 
square.src = "Square_Empty.png"; 
square.alt = "Oops!"; 
square.style = "height:100px;width:100px;position:\ 
absolute;top:14.5px;left:83.1px;"; 
square.onmouseover = "this.src='Square_Red.png'"; 
square.onmouseout = "this.src='Square_Empty.png'"; 
document.body.appendChild(square); 

似乎一切都工作正常,除了onmouseoveronmouseout的分配屬性。根據調試器(Firefox),這些屬性沒有被分配,但其他的是,我不明白爲什麼。

回答

1

這是更好地使用addEventListener()

square.addEventListener("mouseover", function(){ this.src='Square_Red.png' }); 
square.addEventListener("mouseout", function(){ this.src='Square_Empty.png' }); 

或者你可以簡單地添加匿名函數function()

希望這有助於。

+0

事件監聽器的建議工作 - 謝謝!儘管如此,我還是很好奇,至於爲什麼我試圖做的沒有成功。似乎我應該能夠將這些字符串分配給img屬性,與其他字符一樣? – Time4Tea

+0

不客氣,我很高興我可以幫助...你不能通過一個字符串作爲事件,你應該通過一個函數.. –

+0

好吧,但如果我直接在html中設置它,它的工作原理,如果我只是分配字符串「this.src ='Square_Red.png'」到屬性。也許它在那裏工作不同? – Time4Tea