IE9 问题:动态创建(通过 innerHTML)选项按钮和复选框不起作用

IE9 Issue: Dynamically created (through innerHTML) option buttons and check boxes are not working

本文关键字:选项 按钮 不起作用 复选框 innerHTML 通过 问题 动态 创建 IE9      更新时间:2023-09-26

我正在做一个项目,它要求我能够从页面中抓取html并将其插入主网页。 它完全适用于Chrome和Firefox,但在IE 9中失败。 这是我使用的代码的切入。

   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>

加上更多选项按钮。

一切都完美显示,但我无法单击复选框或选项按钮。

我在你的问题中看不到完整的代码。但我假设您没有将代码放在初始值设定项中:

    $(function () {
      // your jQuery code here.
    });

这将有助于浏览器初始化与其元素关联的事件。试试这个,看看是否有任何变化发生。

还要尝试消除javascript上是否有任何错误。尝试使用可用的浏览器进行调试。我遇到过的最好的JavaScript调试器是FireBug,它是一个Firefox插件。

我从未见过这样写的输入标签。我还没有喝早上的咖啡,但我相当确定它应该是自动关闭的,在这种情况下,看到IE对你那里的东西叨叨,我一点也不会感到惊讶。

我想这个想法是使"独家"标签可点击,在这种情况下,您希望在输入周围有一个标签标签,如下所示:

<label for="Checkbox0"><input id="Checkbox0" type="checkbox"  onclick="changebuttons();" checked="true" />Exclusive.</label>

一试。

任何

动态添加到 DOM 的内容在加载到页面后都必须绑定到它的操作。仅通过 AJAX 将代码放入不会使其运行。

尝试在函数中执行此操作:

$.get(element.data('page'), function (msg) {
         $('#contentHolder').html(msg);
         //this will bind your input field  via javascript
         $('input#Checkbox0').click(changebuttons);
         /* After page was received, add it to the cache for the current hyperlink: */
            element.data('cache', msg);
            setTimeout("checkonbox()", 100);
});

替换

element  

$(element)  

它会起作用。