How can I pass a parameter to a function without it running right away?

前端 未结 3 560
面向向阳花
面向向阳花 2020-12-03 01:30

I\'m having somewhat of an odd issue with trying to piece together a somewhat dynamic Google Maps display. I have overlays on a map that I would like to call a function when

3条回答
  •  佛祖请我去吃肉
    2020-12-03 01:47

    Have showArea return a function that works with the id.

    function showArea(id) {
       return function() {
           // do stuff with id
       };
    }
    

    The returned function closes over id so it continues to reference it, and is passed to addListener to be used as the handler.


    Alternately, you could just inline the function that calls showArea(1)...

    google.maps.event.addListener(southEast, 'click', function() { showArea(1); });
    function showArea(id) {
       // do stuff based on that id
    }
    

    This will work because you're hardcoding the 1. If it was a variable that could change, like in a loop, you'd use the first example.

提交回复
热议问题