[英]Why my custom class is not applied to body when adding it through jQuery with gmap event click listener?
单击gmap标记时,我想打开幻灯片菜单,但不能。 这是我如何实现这一目标的方法:
google.maps.event.addListener(marker, 'click', function () {
$('body').toggleClass("side-panel-open");
if( $('body').hasClass('device-touch') ) {
$('body').toggleClass("ohidden");
}
return false;
});
当我以这种方式管理按钮时,同样的事情也可以正常使用:
$("#test").click(function(){
$('body').toggleClass("side-panel-open");
if( $('body').hasClass('device-touch') ) {
$('body').toggleClass("ohidden");
}
return false;
});
如您所见:
http://www.themes.krown.ch/canvas4/HTML/index-fullscreen-image_test.html
页脚上的“测试”按钮运行正常。 不幸的是,当单击gmap标记时,没有任何反应。 我在Firebug上看到身体上发生了某些事情,但是类“ side-panel-open”并没有消失。
我还尝试通过这种方式将一个类添加到主体:
$('body').addClass('side-panel-open');
与第一个代码一样,没有任何反应。 这很奇怪,因为如果我尝试添加另一个类,例如“ class_name”。 此类将按预期应用于身体:
$('body').addClass('class_name');
文档: https : //developers.google.com/maps/documentation/javascript/examples/event-simple
对于按钮,您可以使用jQuery click event
如果您使用的是其他JavaScript框架,则它们也可能也会具有click事件。 对于jQuery,您需要执行以下操作:
$('#boundaries-states').click(function () {
//Do something
});
看起来addListener
方法采用google Map对象,而不是地图的HTML元素。 在这里看第一个例子。 对某些事件感兴趣的程序将为这些事件注册JavaScript事件侦听器,并在通过调用addListener()
在对象上注册事件处理程序而接收到这些事件时执行代码。
因此,如果还没有,则需要保留实例化地图时返回的对地图的引用:
var map = new google.maps.Map(document.getElementById('boundaries-states'),
mapOptions);
Once you have your map reference, you can add a listener using the map object, rather than the HTML element.
google.maps.event.addListener(map, 'click', function() {
alert('clicked');
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.