从HTML内部调用JavaScript?

时间:2012-01-30 01:45:35

标签: javascript google-maps

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上调用它时,这段代码就可以工作。

2 个答案:

答案 0 :(得分:1)

当您将代码放入页面中的脚本标记内时,它会在加载该脚本标记后立即运行。这可能是在它所指的div被加载之前,所以它不起作用,因为它运行得太早(鼠标悬停方法有效,因为在加载qhole页面之前你不能进行鼠标悬停)。

您可以尝试将脚本标记移动到页面末尾,也可以从HTML body标签的onload事件触发它,或者您可以查看jQuery并使用$(document).ready()。

答案 1 :(得分:0)

什么条件会触发对initializeMap的调用?以前,您在发生mouseOver时调用了它。如果将它移出事件处理程序,它只会被调用一次。

必须触发其调用。我想出你想要它被叫什么。或许你需要一个计时器吗?