私は、ページからHTMLを取得してメインWebページに挿入する必要があるプロジェクトに取り組んでいます。それはChromeとFirefoxではまったく動作しますが、IE 9では失敗します。ここでは、私が使用するコードを省略しています。IE9問題:動的に作成された(innerHTMLを介して)オプションボタンとチェックボックスが機能しない
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は
<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>
プラスいくつかのより多くのオプションボタンです。
すべてが完全に表示されますが、チェックボックスやオプションボタンをクリックすることはできません。
changebuttons()関数は何をしますか?これは問題の原因として考えられます。もう一つ確認すべきことはjqueryのバージョンです - IE9や古いバージョンのjqueryにはいくつかのバグがあります。 – FluffyKitten
サイドノート - 'changebuttons() 'を'; 'で終了する必要はありません。これは、コード後に何もしないからです。ちょうどヒント、深刻な何も。 – Ohgodwhy
jquery 1.7.2を使用しています。私はまた、onclickイベントが動作していることを発見しました。チェックボックスは変更されません。私は私のchangebuttons関数のトップに以下を含めました。if(navigator.appName == 'Microsoft Internet Explorer'){ document.getElementById( 'Checkbox0')。checked = 1 - document.getElementById( 'Checkbox0')。チェック。 } 'それは完全に動作します。 – Urza