jQuery仅在使用jQuery附加时触发keyup事件

dis*_*ted 5 javascript jquery events triggers onkeyup

Realy keyup使用jQuery 搞砸了触发事件.

这是一个干净的例子

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

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

我在哪里想念什么?

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

Anu*_*rag 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);
        });
    });
Run Code Online (Sandbox Code Playgroud)

或者你可以看看jQuery 模拟插件,这使它更容易一些.这是一个较短的版本和另一个工作示例.

$('button').click(function() {
    $('input').simulate('keyup');
});
Run Code Online (Sandbox Code Playgroud)