我已经阅读了一些关于此的主题,但是,我仍然无法弄清楚。我需要的只是让'this'语句引用正在调用函数的对象,而它似乎是在引用窗口..
我的功能如下所示:
function bckClr(clr){
var elmnt=this;
elmnt.style.background-color=clr;
}
我这样称呼它:
< div > onmouseover="bckClr(#ff0000)">Lorim ipsum dolor sit amet.. < /div >
我已经阅读了一些关于此的主题,但是,我仍然无法弄清楚。我需要的只是让'this'语句引用正在调用函数的对象,而它似乎是在引用窗口..
我的功能如下所示:
function bckClr(clr){
var elmnt=this;
elmnt.style.background-color=clr;
}
我这样称呼它:
< div > onmouseover="bckClr(#ff0000)">Lorim ipsum dolor sit amet.. < /div >
这样做:
<div onmouseover="bckClr(this, '#ff0000')">Lorim ipsum dolor sit amet.. </div>
进而:
function bckClr(elmnt, clr){
elmnt.style.backgroundColor=clr;
}
更新:
Pranav Kapoor 指出,使用 CamelCase 对 sytle 属性进行了更新。
将您的 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');
};
使用事件侦听器而不是内联处理程序。
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');})