如何为Google Maps api v3对象创建自定义事件?

2 events google-maps google-maps-api-3

我想创建一个包含或继承自google.maps.Polygon类的特殊类型的多边形对象.我希望它有一个edited可以收听的自定义事件,理想情况是通过普通的addListener界面.可以这样做吗?

Ste*_*sen 7

我喜欢JustinY的回答.

另一种方法是手动触发这样的事件:

 function CustomPolygon(options) {
     var self = this;
     // initialize any options
     console.log('init')
 }

 function edit() {
     // do work!!!
     // now tell people about it!
     google.maps.event.trigger(this, 'edited');
 }

 // extend CustomPolygon from google.maps.Polygon
 CustomPolygon.prototype = new google.maps.Polygon();
 CustomPolygon.prototype.edit = edit;

 // now you can do 
 var p = new CustomPolygon({ /*options*/
 });
 google.maps.event.addListener(p, 'edited', function () {
     document.body.innerHTML = 'edited!';
 });
 p.edit();
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/stevejansen/hQZcT/

资料来源:https://developers.google.com/maps/documentation/javascript/reference#event