我有这样的代码在JavaScript:JavaScript的全局变量在功能和.hover
status = document.getElementById('status2');
$('#slider > img').hover(
function() {
stopLoop();
status.innerHTML = "paused";
},
function() {
startSlider();
status.innerHTML = "playing";
}
);
,我找都在我的HTML有ID滑块,当我悬停,然后我要添加图像一个字(暂停或播放)到id为status2的span标签。但我不知道为什么全局变量不工作,我做它的工作是把一个局部变量每个funcion内像这样的唯一途径:
function() {
stopLoop();
var status = document.getElementById('status2');
status.innerHTML = "paused";
},
function() {
startSlider();
var status = document.getElementById('status2');
status.innerHTML = "playing";
}
任何人都可以我为什么?
注意:正如我之前所说的所有使用局部变量但不将其设置为全局变量。
因为在你运行'status = document.getElementById('status2')的时候''DOM没有准备好,所以你把'status'设置为'undefined',所以它不会进一步工作 – vinayakj
你说你看所有图像的ID为'slider',但是你的代码检查图像,这些图像是id为'slider'的元素的直接子元素。也许[本页](https://css-tricks.com/child-and-sibling-selectors/)更好地解释它? ID为“滑块”的图像被用'$(“IMG#滑块”)'选择,而与ID为“滑块”元素的图像的儿童用'$(“#滑块> IMG”)来选择。 – FWDekker
如果你愿意,你可以去完整的jQuery并使用'var status = $(“status2”);''''和'status.html(“playing”);'。 – Anders