【问题标题】:internet explorer and target eventInternet Explorer 和目标事件
【发布时间】:2012-04-24 12:16:44
【问题描述】:

我希望你能帮助我! 此功能在 Internet Explorer 中不起作用!我该怎么办?

function docClick (oEvent) {
    var bHide = true, oTable = document.getElementById("content_tab");
    for (var oItTarget = oEvent.target; oItTarget; oItTarget = oItTarget.parentNode) {
        if (oItTarget === oTable) { bHide = false; break; }
    }
    if (bHide) {
        oTable.style.visibility = "hidden";
    }
}

谁能帮助我?谢谢!

【问题讨论】:

  • 如果能同时提及浏览器版本就更好了。

标签: javascript internet-explorer


【解决方案1】:

您需要为 IE 使用currentTarget 属性。检查可用的目标:

var oItTarget = oEvent.target ? oEvent.currentTarget : oEvent.target;

或者在你的函数中:

function docClick (oEvent) {
    var bHide = true, oTable = document.getElementById("content_tab");
    for (var oItTarget = oEvent.target ? oEvent.currentTarget : oEvent.target; oItTarget; oItTarget = oItTarget.parentNode) {
        if (oItTarget === oTable) { bHide = false; break; }
    }
    if (bHide) {
        oTable.style.visibility = "hidden";
    }
}

【讨论】:

  • 没有。如果 target 不可用(因为它不在 IE currentTarget 也不可用。
【解决方案2】:

在 IE srcElement 而不是 target。您还可能(取决于事件处理程序的附加方式)需要在 IE 中使用 window.event

function docClick (oEvent) {
    oEvent = oEvent || window.event;
    var target = oEvent.target || oEvent.srcElement;

    var bHide = true, oTable = document.getElementById("content_tab");
    for (var oItTarget = target; oItTarget; oItTarget = oItTarget.parentNode) {
        if (oItTarget === oTable) { bHide = false; break; }
    }
    if (bHide) {
        oTable.style.visibility = "hidden";
    }
}

【讨论】:

    猜你喜欢
    • 2014-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 2017-01-12
    • 1970-01-01
    • 1970-01-01
    • 2014-05-20
    相关资源
    最近更新 更多