我已经开始使用本教程将自定义控件添加到 GMaps v3 地图:
https://developers.google.com/maps/documentation/javascript/controls?hl=fr#CustomControls
最后一个示例特别演示了如何使用控件保存状态。我有两个控件,它们应该协同工作,当单击控件 A 时,它应该明显地变为粗体文本,控件 B 变为普通文本,当单击 B 时,控件 A 被重置。我试图通过保存状态来做到这一点,在这种情况下是按钮的“选定”状态,但我不确定下一步该去哪里重置按钮集中未选择的按钮,更改按钮字体重量, ETC。
简而言之,我试图重现一个与本机地图类型选择器按钮具有相同行为的按钮集。
有关如何最好地解决此问题的任何教程或指示?我将重新发布上面链接示例中的代码,因为我的基本相同,除了我的属性被称为selected_
.
// Define a property to hold the Home state.
CustomControl.prototype.selected_ = null;
// Define setters and getters for this property.
CustomControl.prototype.getSelected = function() {
return this.selected_;
}
CustomControl.prototype.setSelected = function(selected) {
this.selected_ = selected;
}
function CustomControl(map, div, selected) {
// Get the control DIV. We'll attach our control UI to this DIV.
var controlDiv = div;
// We set up a variable for the 'this' keyword since we're adding event
// listeners later and 'this' will be out of scope.
var control = this;
// Set the home property upon construction.
control.selected_ = selected;
// styling removed //
// Setup the click event listener
google.maps.event.addDomListener(setSelectedUI, 'click', function() {
control.setSelected(true);
});
}
在尝试使用按钮存储选定状态时,我是否会以完全错误的方式来解决这个问题?