【问题标题】:jQuery live not working in IE8jQuery live 在 IE8 中不起作用
【发布时间】:2011-09-03 12:40:28
【问题描述】:

以下内容适用于 Firefox 3 和 IE 7,但不适用于 IE8。

鉴于此 HTML sn-p:

<li><a href="#" class="remove">remove me</a></li>

javascript:

jQuery('.remove').live('click', function(e){
            jQuery(this).parent().remove();
        });

我希望我有一个错误消息可以使用,但我没有。

我怎样才能让它在 IE8 中工作?

我还应该提到锚标记是由原型版本 1.6.0 生成的。

更新:这是 Prototype 1.6.0 中的一个错误,已在 1.6.1 中修复See Issue

【问题讨论】:

  • 为我工作jsfiddle.net/nfykQ 我们需要查看其他代码以了解更多信息。
  • jQuery('a.remove').live('click', function(e){ //尝试给IE一个更全面的标签引用
  • 您可能需要检查 jQuery('.remove') 是否返回了您所期望的,即 jQuery('.remove').length 等。另外,请确保没有捕获另一个事件在点击事件到达文档结构顶部的实时处理程序之前。
  • 如果我将选择器更改为 jQuery('a[className="remove"]') 它可以工作,但仅适用于 IE8。似乎 IE8 使用 className 而不是 class。有人知道为什么吗?
  • className 是 javascript 中 DOM 元素的属性。类是一个 HTML 属性。虽然它们基本上代表相同的数据,但它们完全不同。

标签: jquery internet-explorer-8 prototypejs


【解决方案1】:

正如我在问题中提到的,锚标记是由 Prototype 1.6.0 生成的。这有一个错误,将类属性生成为“className”,而不仅仅是“class”。 jQuery 无法识别“className”属性,因此我的代码示例失败。这在他们的issue tracking system 中被确定为 Prototype 中的一个错误,并在 1.6.1 中得到修复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-18
    • 2012-09-12
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-27
    相关资源
    最近更新 更多