javascript全局变量可以';如果它意味着从HTML元素中提取值,是否不存储这些值?
好的,我有了这个功能,用户可以用键盘的箭头键左右上下移动苍蝇。下面给出的代码可以工作(我只使用Internet Explorer测试脚本):javascript全局变量可以';如果它意味着从HTML元素中提取值,是否不存储这些值?,javascript,variables,Javascript,Variables,好的,我有了这个功能,用户可以用键盘的箭头键左右上下移动苍蝇。下面给出的代码可以工作(我只使用Internet Explorer测试脚本): var coordenadax=300; var coordenaday=250; 函数coordenadas(){ var key=window.event.keyCode; 开关(钥匙){ 案例37:coordenadax=coordenadax-10;断裂; 案例38:coordenaday=coordenaday-10;中断; 案例39:coor
var coordenadax=300;
var coordenaday=250;
函数coordenadas(){
var key=window.event.keyCode;
开关(钥匙){
案例37:coordenadax=coordenadax-10;断裂;
案例38:coordenaday=coordenaday-10;中断;
案例39:coordenadax=coordenadax+10;中断;
案例40:coordenaday=coordenaday+10;中断;
}
mosca.style.left=coordenadax;
mosca.style.top=coordenaday;
}
但是,如果我改变:
<script language="javascript" text="text/javascript">
var coordenadax=300;
var coordenaday=250;
function coordenadas(){
var coordenadax=300;
var coordenaday=250;
函数coordenadas(){
致:
var coordenadax=mosca.style.left;
var coordenaday=mosca.style.top;
函数coordenadas(){
甚至:
<script language="javascript" text="text/javascript">
var coordenadax=document.getElementById('mosca').style.left;
var coordenaday=document.getElementById('mosca').style.top;
function coordenadas(){
var coordenadax=document.getElementById('mosca').style.left;
var coordenaday=document.getElementById('mosca').style.top;
函数coordenadas(){
为了从div元素中检索这些值,而不仅仅是将它们赋给全局变量,苍蝇根本不会移动,我不明白为什么…页面加载时会执行JavaScript。因为JS代码在实际标记之前,所以脚本在
#mosca
元素之前执行人类是存在的
将脚本放在
另外,mosca
对象不会简单地存在-您需要使用document.getElementById
对其进行设置:
var mosca = document.getElementById('mosca');
定义javascript脚本时,它会“就地”执行(浏览器会按照定义的顺序创建对象并执行代码)。当浏览器执行时:
var coordenadax=document.getElementById('mosca').style.left;
var coordenaday=document.getElementById('mosca').style.top;
id为“mosca”的对象尚未创建(您在脚本之后创建该对象),它会删除一个错误。(请检查开发人员控制台,可能它就在那里)。在进行此操作时,您需要提前一点停止并抓取。每次从一个memozied样式的对象中离开;例如:var coordenaday=document.getElementById('mosca')).style;…coordenaday.top;哦,哇…很有意义。问题是,我的老师总是把脚本放在标题部分,所以我得出结论,脚本不能放在其他任何地方,特别是正文部分。谢谢!!没问题!JavaScript加载后会立即执行,所以通常情况下,你会想要它最后加载(因此将
脚本标记放在标记的底部)。把这些新知识带到课堂上,并把你的教授叫出来!这是一个最好的实践,他们肯定会教你。只是顺便说一句,如果你按照定义使用mosca
,一些浏览器会工作,因为它们使用对象id作为对象本身的引用。但据我所知,这不是一个官方功能。@Guiri that sounds就像Desaroll提到的那样。我不是真正的IE,但这绝对不是标准的。如果它对你有用,那就试试吧——但我怀疑它在FF或Chrome等其他浏览器中是否有效
var mosca = document.getElementById('mosca');
var coordenadax=document.getElementById('mosca').style.left;
var coordenaday=document.getElementById('mosca').style.top;