无法确定onclick的目标

时间:2009-11-29 00:53:47

标签: javascript javascript-events

我已经尝试过并尝试过...我似乎无法在IE中完成这项工作(测试版本6) 有谁能够帮我? IE抱怨错误,但拒绝告诉它是哪个错误......

  var a = document.getElementsByTagName("a");
  for (i = 0; i < a.length; i++) {
    if (a[i].getAttribute("class") == "info-link") {
      a[i].onclick = function(e) {
        e = e || window.event;
        var target = e.srcElement || e.target;
        var info = target.parentNode.getElementsByTagName("div")[0];
        if (info.style.display == "none" || info.style.display == "") {
          info.style.display = "block";
        } else {
          info.style.display = "none";
        }
        return false;
      }
    }
  }

<div class="auxdata">
  <a href="#" class="info-link">Esta questão possuí dados anexos. Clique para ver.</a>
  <div style="display: none;" class="info-inner">
    <!-- variable stuff here -->
  </div>
</div>

2 个答案:

答案 0 :(得分:0)

在版本8之前的IE没有正确执行getAttribute('class'),尝试读取元素className属性。

当你越过那个时,检查IE如何阅读样式属性 - 它可以大写源代码中小写的样式值,如'NONE','BLOCK'。

答案 1 :(得分:0)

正如 @Magnar 所说的那样(+ 1),我会包含jQuery,它有一个简单易用的方法

jQuery(elem OR "selector").click(function(e){}).

至少你可以查看它的代码,看看它是如何处理click()句柄的