首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gmaps.js -如何使用select筛选标记?

gmaps.js -如何使用select筛选标记?
EN

Stack Overflow用户
提问于 2013-03-24 15:34:33
回答 1查看 1.3K关注 0票数 0

我能够在没有gmaps.js的情况下过滤标记,使用Google。但是,下面的代码不能与gmaps.js一起工作。错误声明: changeMap不是一个函数。我的业余JS水平搞不出来。有什么想法吗?

我当前使用gmaps.js的不正确的JS

代码语言:javascript
复制
$(document).ready(function(){
var layer;
var tableid = 2796050;
var map = new GMaps({
el: '#map_canvas',
lat: 33.68906,
lng: -78.886694,
zoom: 11
});
infoWindow = new google.maps.InfoWindow({});
map.loadFromFusionTables({
query: {
select: '\'Location\'',
from: '1LNKdPBYZOlszyjQqzUhoqsQXVdkyQ7pP2o2ft9o'
},
suppressInfoWindows: false,
events: {
click: function(point){
infoWindow.setPosition(point.latLng);
}
}
});
// problem area
function changeMap() {
var searchString = document.getElementById('search-string').value.replace(/'/g, "\\'");
if(!searchString) {
layer.setQuery("SELECT 'Latitude' FROM " + tableid);
return;
}
layer.setQuery("SELECT 'Latitude' FROM " + tableid + " WHERE 'Category' = '" + searchString + "'");
}
});

HTML

代码语言:javascript
复制
<!-- HTML -->
<form>
<label>Category </label>
<select id="search-string" onchange="changeMap(this.value);">
<option value="">All Places</option>
<option value="Attractions">Attractions</option>
<option value="Dining">Dining</option>
<option value="Shopping">Shopping</option>
<option value="Services">Services</option>
</select>
</form>
EN

回答 1

Stack Overflow用户

发布于 2013-03-24 17:55:31

要使这一项正常工作,您需要在HTML之前添加<script>块。

由于您无论如何都在使用jQuery,所以考虑编写一个事件而不是changeMap函数。首先,从onchange中删除select属性。并改变这一点:

代码语言:javascript
复制
function changeMap() {
    var searchString = document.getElementById('search-string').value.replace(/'/g, "\\'");
    if(!searchString) {
        layer.setQuery("SELECT 'Latitude' FROM " + tableid);
        return;
    }
    layer.setQuery("SELECT 'Latitude' FROM " + tableid + " WHERE 'Category' = '" + searchString + "'");
}

..。对此:

代码语言:javascript
复制
$('#search-string').change( function() {
    var searchString = document.getElementById('search-string').value.replace(/'/g, "\\'");
    if(!searchString) {
        layer.setQuery("SELECT 'Latitude' FROM " + tableid);
        return;
    }
    layer.setQuery("SELECT 'Latitude' FROM " + tableid + " WHERE 'Category' = '" + searchString + "'");
})

更多信息:http://api.jquery.com/change/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15600390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档