5

真的搞砸了keyup使用 jQuery 触发事件。

这是干净的例子

http://jsfiddle.net/xQcGM/2/

当我输入任何一个input's 时,它们都会触发事件,但是当我尝试以编程方式触发它时$(element).trigger('event')

我在哪里错过了什么?

UPD 我无法更改处理程序的附加方式!

4

1 回答 1

6

触发事件的本机方式是调用dispatchEvent. 不幸的是,这个方法并没有出现在jQuery 的源代码中。所以我猜你必须自己创建事件对象并手动调度它们。

这是一个带有工作示例的较长版本。

$('button').click(function() {
        var myEvent = document.createEvent('KeyboardEvent');
        myEvent.initKeyboardEvent('keyup', true, true, null, false, 
                                false, false, false, 76, 0);
        $('input').each(function() {
            this.dispatchEvent(myEvent);
        });
    });

或者您可以查看 jQuery模拟插件,它会稍微容易一些。这是带有另一个工作示例的较短版本。

$('button').click(function() {
    $('input').simulate('keyup');
});
于 2011-06-18T20:59:01.640 回答