Function calls within InfoWindows

旧时模样 提交于 2019-12-22 15:03:07

问题


Often I have maps with a whole lot of markers (let's say representing shops). I have infowindows that display basic info on the shop represented by the marker, then, on the infoWindow HTML I like to put a button that, for example, says "Details". The html of the infowindow is simple.. the html of the info window would include an

input type="button" value="Show More" onclick="showMore(' + shopId + ');

The relevant shopId would be obviously different for every marker...

The problem is that the showMore function has to be declared as a global function to the javascript otherwise the infowindow doesn't find it.

Lets say that all the code (generating map, placing markers, declaring infowindows, etc) is in a function called function showShops() {} , and the showMore(id) function is inside the showShops() function, HOw can I tell the "onclick" event to call the showMore() function inside the showShops function?

Just to check my code, I've changed it to onclick="alert(' + shopId + ') .. and I correctly get an alert with the relevant shop id..


回答1:


The content of a infowindow may either be a string or a node.

To achieve it you must use a node that will be created inside the scope of showShops()

Sample-creation of such a node:

var content = document.createElement('div');
content.innerHTML = 'some text<br/>';

var button = content.appendChild(document.createElement('input'));
button.type = 'button';
button.value = 'click me!';

google.maps.event.addDomListener(button,'click', function(){showMore(id)});

Simple Demo: http://jsfiddle.net/doktormolle/8ZsSp/



来源:https://stackoverflow.com/questions/21327691/function-calls-within-infowindows

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!