0

我正在尝试复制此“onclickout 模拟器”脚本,如下所示:

http://jsfiddle.net/C9CL3/

如您所见,它工作正常(在我测试过的所有浏览器中 - 所以据我所知,这不是浏览器兼容性问题)。

我的解决方案中的代码如下:

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。

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

4

2 回答 2

2

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

document.getElementById('bigBtn').addEventListener("click", yourFunction, false);
于 2012-04-27T11:09:53.333 回答
0

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

于 2012-04-27T12:45:03.340 回答