简体   繁体   中英

internet explorer and target event

i hope you can help me! This function doesn't work in internet explorer! How can i do?

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";
    }
}

Can anyone help me? thanks!

You need to use currentTarget property for IE. Check what target is available:

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

Or in your function:

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";
    }
}

You need srcElement rather than target in IE < 9. You may also (depending on how the event handler is attached) need to use window.event in IE.

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";
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM