我正在做一个项目,它要求我能够从页面中抓取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)
它会起作用。