JQuery实时点击无法使用标签在IE中工作

时间:2009-09-06 07:59:33

标签: jquery

我的页面上有一个使用jQuery动态添加的锚标记:

<a href="#" id="ClickMe">Click Me</a>

我在$(document).ready(function()

中有以下jQuery
 $("#ClickMe").live('click', function()
 {
     $("#SomeDiv1").show();
     $("#SomeDiv2").hide(); 
 });

这在firefox中工作正常,但在IE中却没有。我目前正在IE8中开发,但我需要它在最低IE7中运行。

5 个答案:

答案 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()所针对的控件看起来不能附加事件。

第1页的

将点击事件添加到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">&lt;&lt;Return </a>
第2页

-

之后的'a'标记
<a href='#' id="returnfromformulaeditor"  class="BackLink">&lt;&lt;Return </a>

答案 3 :(得分:1)

因为“Click”会在Document准备就绪时将click事件与处理程序绑定,但如果在dom中动态生成任何元素,则不会附加相同的“click”事件。这就是我们使用“直播”的原因。

老兄,如果“.live”在IE8中不起作用,那么请转到“.delegate”。我正在使用它,它在所有浏览器中都运行良好。

答案 4 :(得分:0)

为什么不直接使用click事件而不是live?您绑定到具有ID的元素,因此我假设您以后不会使用相同的ID添加其他元素;这违背了使用live函数的目的。


试试这样:

$("#ClickMe").click(function()
 {
     $("#SomeDiv1").show();
     $("#SomeDiv2").hide(); 
 });