触发dom级事件

时间:2012-06-12 16:45:57

标签: mootools

是否有人知道在dom级别使用mootools触发元素点击的方法?

例如,

foo.fireEvent('click')只会触发由mootools 添加的事件,这对此特定应用程序没有太大帮助。

这是一个玩具示例的小提琴 - 您可以看到单击顶部按钮将触发两个事件处理程序功能,而尝试使用下部按钮触发单击将仅触发第二个功能。

http://jsfiddle.net/Tc4Bv/

任何帮助将不胜感激 - 谢谢!

1 个答案:

答案 0 :(得分:1)

现代浏览器提供Element.click方法,因此您可以尝试以下方法:

Element.implement({
    synteticClick: function() {
        var click = 'click';
        (this[click] && !(this[click]())) || this.dispatchEvent(new Event(click));
        return this;
    }
});

http://jsfiddle.net/dimitar/LUPYK/

在IE7模式(compat)中以最新的FF,Chrome,IE9和IE9进行工作/测试。

请记住,事件对象可能是基本的,即缺少clientX / Y等 - 所以它在很大程度上取决于你在另一边做了什么......