JavaScriptにはかなり新しく、なぜこのようなことが起こっているのか分かりません。チェックボックスの使用私は、クリックすると、チェックボックスの値を配列に追加しようとしています。それはうまく追加されているようですが、2回です。ここで値が配列に2回追加されていて、理由が分かりません
はHTMLです:
<form id= "checkboxes">
<label> Types of Places</label>
<link rel="stylesheet" type="text/css" href="css/style.css">
<input type="checkbox" name="cbox" value="woodland" class="places"/>
<label for="woodland"><img src="../img/Woodland.jpg" /></label>
<input type="checkbox" name="cbox" value="lodging" class="places"/>
<label for="viewpoint"><img src="../img/Viewpoint.jpg" /></label>
<input type="checkbox" name="cbox" value="restaurant" class="places"/>
<label for="restaurant"><img src="../img/Restaurant.jpg" /></label>
<input type="checkbox" name="cbox" value="museum" class="places" />
<label for="historical"><img src="../img/Historical.jpg" /></label>
</form>
、ここでは、関連するJS/jQueryの:
var placeT = [];
function initialize() {
// Default the map view to UK
var mapOptions = {
center: new google.maps.LatLng(55.3781, -3.4360),
mapTypeId: google.maps.MapTypeId.ROADMAP,
zoom: 5
};
new AutocompleteDirectionsHandler(map);
$(".places").change(function() {
$(".places").each(function() {
if ($(this).is(':checked')) {
placeT.push($(this).val());
}
});
alert(placeT);
});
}
function findPlaces(boxes, searchIndex) {
var request = {
bounds: boxes[searchIndex],
types: [placeT]
};
// alert(request.bounds);
service.radarSearch(request, function(results, status) {
if (status != google.maps.places.PlacesServiceStatus.OK) {
alert("Request[" + searchIndex + "] failed: " + status);
}
// alert(results.length);
document.getElementById('side_bar').innerHTML += "bounds[" + searchIndex + "] returns " + results.length + " results<br>"
for (var i = 0, result; result = results[i]; i++) {
var marker = createMarker(result);
}
searchIndex++;
if (searchIndex < boxes.length)
findPlaces(boxes, searchIndex);
});
}
私はそれはおそらく、単純な何かを知っているが、私はちょうどそれを把握するように見えることはできません。助けてくれてありがとう!以下のように
あなたは決して空の 'placeT'配列? – adeneo
これは、チェックボックスのクリックから2つのインスタンスを追加し、配列を空にしてこれを修正しますか? –
次に、 'initialize'が2回実行される可能性があります。 – adeneo