tooltip = "#tooltip";
向地图添加标记时,我添加了一个监听器:
google.maps.event.addListener(marker, 'mouseout', function () {
hideWindow(tooltip);
});
其中包含:
function hideWindow(div) {
var t = setTimeout("jQuery(div).hide()", 1000);
}
Firebug声明'div'没有定义。 为什么呢?
答案 0 :(得分:4)
你不应该在setTimeout
中使用字符串,而应该使用闭包。
例如:
setTimeout(function(){
jQuery(div).hide()
}, 1000)
答案 1 :(得分:1)
未定义,因为您使用的是setTimeout
的字符串版本,因此您的变量div
不在范围内。如果可能的话,不应该使用它。
请改为尝试:
function hideWindow(div) {
var t = setTimeout(function() {
jQuery(div).hide();
}, 1000);
}
或者,如果您想使用jQuery动画,可以使用.delay()
将延迟直接放在事件处理程序中:
google.maps.event.addListener(marker, 'mouseout', function () {
jQuery(tooltip).delay(1000).hide('fast');
});