[英]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.