2010-02-07 13 views

Odpowiedz

9

Jeśli wywołanie wywołania zdarzenia zostanie wywołane przed wywołaniem metody openInfoWindowHtml, tak jak jest w tym przykładzie, zakres nie był w DOM, podczas gdy pierwsze wywołanie szukało elementów z klasą "foo", więc żaden program obsługi nie był przywiązany.

Możesz przenieść tę procedurę obsługi zdarzenia, która ma zostać wywołana po openInfoWindowHtml, lub użyć powiązania zdarzeń "na żywo", aby jQuery monitorował DOM pod kątem nowych elementów za pomocą danego selektora.

$(".foo").live('click', myFunction); 
+0

Dzięki Kevin, to działa. Musiałem umieścić zdarzenie click na wewnętrznym wewnętrznym jquery mobile #link, a strona wewnętrzna wydaje się ładować przed uruchomieniem zdarzenia? po prostu coś, o czym należy pamiętać. –

3

O ile mi wiadomo, GMaps wstrzykuje zawartości do InfoWindow programowo, więc wszelkie bound obsługi zdarzeń na wstrzyknięto elementów nie zadziała, chyba że używasz delegacji zdarzeń:

$(".foo").live("click", myFunction); 

Zobacz obsługi zdarzeń live.

0

Spróbuj tego:

google.maps.event.addListener(infowindow,"**domready**",function() { 
    var Cancel = document.getElementById("Cancel"); 
    var Ok = document.getElementById("Ok"); 

    google.maps.event.addDomListener(Cancel,"click",function() { 
     infowindow.close(); 
    }); 

    google.maps.event.addDomListener(Ok,"click",function() { 
     infowindow.close(); 
     console.log(position); 
     codeLatLng(position); 
    }); 
}); 
10

nie mogłem dostać pracy jak Kevin Górski wyjaśnił ...

z jQuery 1.9.1 i Maps API v = 3.exp następujących prac:

infowindow.setContent('<a href="#" id="test">test</a>'); 
google.maps.event.addDomListener(infowindow, 'domready', function() { 
    $('#test').click(function() { 
     alert("Hello World"); 
    }); 
}); 
0

proste rozwiązanie i praca dla mnie. użyj zdarzenia onclick w zakresie.

<span class=\"foo\" onclick="test()">myText</span> 

function test(){ 
alert('test OK'); 
} 
Powiązane problemy