我已经阅读了几个关于此的主题,但是,我仍然无法弄明白。 我只需要让'this'语句引用调用该函数的对象,而它似乎是指该窗口..
我的功能如下:
function bckClr(clr){
var elmnt=this;
elmnt.style.background-color=clr;
}
我称之为:
< div > onmouseover="bckClr(#ff0000)">Lorim ipsum dolor sit amet.. < /div >
答案 0 :(得分:5)
这样做:
<div onmouseover="bckClr(this, '#ff0000')">Lorim ipsum dolor sit amet.. </div>
然后:
function bckClr(elmnt, clr){
elmnt.style.backgroundColor=clr;
}
<强>更新强>
Pranav Kapoor指出,使用CamelCase更新了sytle属性。
答案 1 :(得分:2)
将您的javascript与您的标记分开:
<div id="thediv">Lorim ipsum dolor sit amet.. </div>
和
var bckClr = function (element, color) {
// notice the property is camel cased, not hyphenated
element.style.backgroundColor = color;
};
document.getElementById('thediv').onmouseover = function () {
bckClr(this, '#ff0000');
};
答案 2 :(得分:1)
使用事件侦听器而不是内联处理程序。
HTML:
<div id="mydiv">Lorim ipsum dolor sit amet.. </div>
JS:
function bckClr(elmnt, clr){
elmnt.style.backgroundColor=clr;
}
document.getElementById("mydiv").addEventListener("mouseover",function(){bckClr(this, '#ff0000');})