JavaScript新手,以及我在下面所做的事情似乎与我一直在做的所有Google RTFM一样,但它无效。所以我决定伸手去寻求帮助,因为我被困住了。
我有一个JavaScript,它存在于我的HTML<头>文件......
<script type="text/javascript" src="http://example.com/scripts/scripts.js"></script>
内容是Google Maps API。以前我已经从DIV onMouseOver运行了JavaScript。这样我可以多次运行脚本 - 因为每页需要多个不同的地图(这是一个照片博客)。我知道脚本有效,因为它今天正常工作。
<div class="location" onmouseover="initalizeMap('gmaps1832588575', '42.102500,-72.587333')"></div>
我试图找出如何从div外部调用此脚本。例如,一个始终显示地图的静态div。所以,我的印象是我可以将initializeMap函数移出onmouseover,然后移入它自己的&lt;脚本&GT;部分。但是,它不起作用。这就是我所拥有的:
<div class="location">
<a href="http://maps.google.com/maps?q=40.756167+-73.978833&z=14" target="_blank">New York, NY, US</a>
<script type="text/javascript" language="JavaScript">initalizeMap('gmaps2021396674', '40.756167,-73.978833');</script>
<div class="map_holder">
<div class="map" id="gmaps2021396674">
</div></div></div>
就像我说的,我需要多次运行,当我从div onMouseOver上调用它时,这段代码就可以工作。
答案 0 :(得分:1)
当您将代码放入页面中的脚本标记内时,它会在加载该脚本标记后立即运行。这可能是在它所指的div被加载之前,所以它不起作用,因为它运行得太早(鼠标悬停方法有效,因为在加载qhole页面之前你不能进行鼠标悬停)。
您可以尝试将脚本标记移动到页面末尾,也可以从HTML body标签的onload事件触发它,或者您可以查看jQuery并使用$(document).ready()。
答案 1 :(得分:0)
什么条件会触发对initializeMap的调用?以前,您在发生mouseOver时调用了它。如果将它移出事件处理程序,它只会被调用一次。
必须触发其调用。我想出你想要它被叫什么。或许你需要一个计时器吗?