Pracuję nad projektem, który wymaga ode mnie możliwości pobrania html ze strony i wstawienia go na stronę główną. Działa całkowicie w przeglądarce Chrome i Firefox, ale kończy się niepowodzeniem w IE 9. Oto fragment kodu, którego używam.Kwestia IE9: Dynamicznie utworzone (poprzez innerHTML) przyciski opcji i pola wyboru nie działają
if (!element.data('cache')) { $('#contentHolder').html('<img src="ajax_preloader.gif" width="64" height="64" class="preloader" />'); $.get(element.data('page'), function (msg) { $('#contentHolder').html(msg); /* After page was received, add it to the cache for the current hyperlink: */ element.data('cache', msg); setTimeout("checkonbox()", 100); }); } else { $('#contentHolder').html(element.data('cache')); setTimeout("checkonbox()", 100); }
HTML jest wstrzykiwany jest
<table style="width:400px; height: 388px; text-align: left;" align="left">
<tr>
<td><input id="Checkbox0" type="checkbox" onclick="changebuttons();" checked="true">
Exclusive.</input></td>
</tr>
</table>
Plus kilka przyciski opcji.
Wszystko wygląda idealnie, ale nie mogę kliknąć pola wyboru ani przycisków opcji.
Do czego służy funkcja changebuttons()? Wydaje się, że jest to najbardziej prawdopodobna przyczyna problemu. Kolejną rzeczą do sprawdzenia jest wersja jquery - pojawiły się błędy w IE9 i starszych wersjach jquery. – FluffyKitten
Notatka boczna - nie musisz kończyć 'changebuttons()' znakiem ';', ponieważ nic nie robisz po dorsze. tylko wskazówka, nic poważnego. – Ohgodwhy
Używam jquery 1.7.2. Właśnie stwierdziłem, że zdarzenie onclick działa; pole wyboru po prostu się nie zmienia. Włączyłem następujące elementy na górze mojej funkcji changebuttons 'if (navigator.appName == 'Microsoft Internet Explorer') { document.getElementById ('Checkbox0'). Checked = 1 - document.getElementById ('Checkbox0').sprawdzone; } 'i działa idealnie. – Urza