gpt4 book ai didi

javascript - 当复选框的容器还包含任何图像时,复选框会触发事件两次

转载 作者:行者123 更新时间:2023-11-28 02:24:47 25 4
gpt4 key购买 nike

我的网站上有谷歌地图。单击相应标记时,每个信息窗口都会打开,并包含一个带有单独 ID 的复选框。当选中该复选框时,将触发控制台消息。这是代码:

function initialize() 
{
var mapOptions =
{
center: new google.maps.LatLng(-34.600, -58.400),
zoom: 12,
mapTypeId: google.maps.MapTypeId.ROADMAP,
minZoom: 12,
scrollwheel: false,
};

var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);

var point1 = new google.maps.LatLng(-34.600, -58.400)
dot0001 = new google.maps.Marker(
{
position: point1,
map: map,
})

var point2 = new google.maps.LatLng(-34.620, -58.400)
dot0002 = new google.maps.Marker(
{
position: point2,
map: map,
})

var infowindow = new google.maps.InfoWindow({});

function filltheinfowindow(markername, numbercode, object)
{
infowindow.open (map, markername)
infowindow.setContent(
'<div id="tabsinfo'+numbercode+'" class="infotabs">'+
'<ul><li><a href="#tabsinfo0001-1">Details</a></li>'+
'<li><a href="#tabsinfo0001-2">Photos</a></li></ul>'+

'<div id="tabsinfo0001-1">'+
'<input name="" type="checkbox" id="checkboxinfo'+numbercode+'" value="">'+
'</div>'+

'<div id="tabsinfo0001-2">'+
'<img src="_objects/_object0001/_images/1.jpg">'+
'</div>'+
'</div>')
}

function activatecheckbox(numbercode)
{
$("#tabsinfo"+numbercode).tabs();

$('#checkboxinfo'+numbercode).change(function()
{
if($('#checkboxinfo'+numbercode).is(':checked'))
{
console.log("checkboxtest")
}
})
}

google.maps.event.addListener(dot0001, 'click', function()
{
filltheinfowindow(dot0001, "0001")
})

google.maps.event.addListener(dot0002, 'click', function()
{
filltheinfowindow(dot0002, "0002")
})

google.maps.event.addListener(infowindow, 'domready', function()
{
activatecheckbox("0001")
})

google.maps.event.addListener(infowindow, 'domready', function()
{
activatecheckbox("0002")
})
}

问题是这样的:当选中该复选框时,控制台消息会被触发两次。

这是奇怪的事情:当我加载第二个选项卡中没有图像的网页时,控制台消息仅触发一次,就像它应该的那样。不幸的是,这些图像是我网站的重要组成部分。

对我来说这完全没有意义。

感谢任何帮助

最佳答案

在我看来,您有两个“domready”事件监听器。

1) google.maps.event.addListener(infowindow, 'domready', function()    
{
activatecheckbox("0001")
})

2) google.maps.event.addListener(infowindow, 'domready', function()
{
activatecheckbox("0002")
})

因此,当 dom 准备就绪时,会触发 activatecheckbox 两次(每个事件监听器一次)。

关于javascript - 当复选框的容器还包含任何图像时,复选框会触发事件两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15126339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com