这个函数参数是如何定义的?

时间:2012-04-27 11:07:11

标签: javascript function onclick stoppropagation

我正在尝试复制这个'onclickout模拟器'脚本,如下所示:

http://jsfiddle.net/C9CL3/

正如您所看到的,它运行正常(在我测试过的所有浏览器中 - 因此,据我所知,这不是浏览器兼容性问题。)

my 解决方案中的代码如下所示:

document.getElementById('bigBtn').onclick = function(event) {
        alert('button clicked');
        if (event.cancelBubble) //THIS LINE GIVES 'EVENT IS UNDEFINED' ERROR
            event.cancelBubble = true;
        else
            event.stopPropagation();
    }

这可以在pageLoad()中找到。

如您所见,由于事件未定义,我从event.cancelBubble行收到意外错误。我不能为我的生活找出原因。

注意:出于浏览器兼容性原因,我以这种方式测试cancelBubble与小提琴演示不同。

非常感谢你的帮助,真的坚持这一点。

2 个答案:

答案 0 :(得分:2)

尝试使用DOM2事件模型。相反,使用以下方法注册处理程序:

document.getElementById('bigBtn').addEventListener("click", yourFunction, false);

答案 1 :(得分:0)

问题解决了。我没有以这种方式“模拟”onclickout事件,而是将焦点(使用window.hash)设置为代替“按钮点击”警报的菜单,然后处理onblur事件以关闭它。