2016-02-12 75 views
0

我想要觸發事件時,有在HTLM元素的任何變化,在以下情況下,當瀏覽器的大小改變將觸發, google.maps.event.trigger($scope.map, 'test');我想這是對HTML元素IndiaMap這是繼html元素的ID) ,當這個html元素的大小發生變化時,如何觸發這個HTML的事件。如何爲特定的HTML元素觸發某些事件?

<div ng-style="{ 'width' : width + '%' , 'height': height + '%' }" id="IndiaMap"> 
     <ui-gmap-google-map center='map.center' zoom='map.zoom' control='map.control' id="map-canvas" events="map.events"> 
      <ui-gmap-markers models="markers" idkey="markers.id" coords="'coords'" events="markerEvents" icon="'icon'" fit="true">     
      </ui-gmap-markers> 
     </ui-gmap-google-map> 
</div> 

var input = document.getElementById('pac-input'); 
var searchBox = new google.maps.places.SearchBox(input);  
google.maps.event.addListener(searchBox, 'places_changed', function() {  
    var places = searchBox.getPlaces(); 
    var marker_search = { 
     id:store_index, 
     coords: { 
     latitude: places[0].geometry.location.lat(), 
     longitude: places[0].geometry.location.lng() 
     }, 

    $scope.latitude=marker_search.latitude; 
    $scope.longitude=marker_search.longitude;  
    $scope.map.center = {latitude: marker_search.latitude, longitude: marker_search.longitude}; 
    $scope.map.zoom=17; 
    google.maps.event.trigger($scope.map, 'test'); 
    $scope.$apply(); 
}) 

google.maps.event.addDomListener(window, "test", function() {     
    $scope.map_obj.setCenter($scope.center); 
}); 

回答

0

這是純粹的javascript,我不能評論,所以我不知道如何問你是否可以。

<div id = "IndiaMap">asdasd</div> 
<script> 
var refIndia = document.getElementById('IndiaMap'); 
var oldId = refIndia.innerHTML; //save old innerHTML 

setInterval(Check, 1000); //you can play with the duration of this timer 

function Check(){ 
    var currentId = refIndia.innerHTML; 
    if(currentId !== oldId){ //compare between now and then 
     alert("InnerHTML changed!"); 
     oldId = currentId; //reset so next time the timer runs, there will be another comparing to do 
    } 

} 
</script> 

這是一個計時器,你可以玩如果你想要的計時器的發生。嘗試將其實施到您的代碼中。

相關問題