TypeError:e未定义 - javascript

时间:2015-03-19 16:12:38

标签: javascript jquery html firefox

所有其他浏览器都可以正常运行。但是,当firefox尝试执行此代码时:

if (!e) var e = window.event;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();

崩溃,控制台显示以下错误: TypeError:e未定义


编辑1:

function clickInactiveTab() {
    $(this).attr({class: "activeTab"});

    $(".inactiveTab").hide();
}

function clickX() {
    $(this).parent().attr({class: "inactiveTab"});
    $(".inactiveTab").show();

    if (!e) var e = window.event;
    e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation();
}

它做了什么,单击时更改div的样式并隐藏该类中的所有其他div。当有人点击div中的x时,它应该改回样式并显示隐藏的div。

1 个答案:

答案 0 :(得分:2)

未定义,因此将是错误

function clickX(e) {  //e needs to be in the arguments as long as the event is attached properly, this will work.
    $(this).parent().attr({class: "inactiveTab"});
    $(".inactiveTab").show();

    e = e || window.event;
    e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation();
}

如果您使用jQuery附加事件,则没有理由对事件或stopPropagation进行检查。