我的页面上有一个使用jQuery动态添加的锚标记:
<a href="#" id="ClickMe">Click Me</a>
我在$(document).ready(function()
$("#ClickMe").live('click', function()
{
$("#SomeDiv1").show();
$("#SomeDiv2").hide();
});
这在firefox中工作正常,但在IE中却没有。我目前正在IE8中开发,但我需要它在最低IE7中运行。
答案 0 :(得分:3)
代码可能正常工作,只是它没有按照你的期望行事;因为你没有做任何事情来阻止点击事件导致浏览器导航,这可能会扰乱你的显示和隐藏div。
尝试以下方法:
$('#ClickMe').live('click', function(ev) {
$('#SomeDiv1').show();
$('#SomeDiv2').hide();
// Stop event handling in non-IE browsers:
ev.preventDefault();
ev.stopPropagation();
// Stop event handling in IE
return false;
});
答案 1 :(得分:1)
我通过在信息窗口中呈现的锚标记中嵌入对函数的调用来解决问题。
e.g。
> <a href="#" id="ClickMe" onclick="ClickMeFunc();">Click Me</a>
答案 2 :(得分:1)
我相信我有解决方案。我处理了同样的问题,在'a'标签上添加了一个“点击”,但尚未存在。在FF中工作但在IE中没有。 a
标记上定义了onclick
:
onclick="hideSubPage($('#formula-editor'));return false;"
我想为'click'添加一个额外的功能(特定的刷新)。
在黑客入侵一段时间后,我从onclick
标记中移除了现有的a
,一切正常,即使在IE中也是如此。
基本上,为了使jquery.live()
能够在IE中运行,jquery.live()
所针对的控件看起来不能附加事件。
将点击事件添加到a
标记。
$('#returnfromformulaeditor').live('click', function(ev) { hideSubPage($('#formula-editor')); ev.preventDefault(); ev.stopPropagation(); refreshFormulaList();return false; });
第2页-
之前的a
标记
<a href='#' id="returnfromformulaeditor" onclick="hideSubPage($('#formula-editor'));return false;" class="BackLink"><<Return </a>
第2页-
之后的'a'标记<a href='#' id="returnfromformulaeditor" class="BackLink"><<Return </a>
答案 3 :(得分:1)
因为“Click”会在Document准备就绪时将click事件与处理程序绑定,但如果在dom中动态生成任何元素,则不会附加相同的“click”事件。这就是我们使用“直播”的原因。
老兄,如果“.live”在IE8中不起作用,那么请转到“.delegate”。我正在使用它,它在所有浏览器中都运行良好。
答案 4 :(得分:0)