使用输入元素上的修饰键触发点击事件

汤姆斯·米科斯

我正在为某些功能编写测试,该功能涉及用户按住Shift键并单击复选框。$('input').trigger($.Event('click', { shiftKey: true }));用来模拟。

但是,当调用事件侦听器时,event.shiftKey总是将属性报告为false源自我的合成事件,而真正的点击会产生所需的效果。更令人困惑的是,在非input元素上触发相同事件似乎正常。例如,请参见http://jsfiddle.net/hus​​kssk1/

我在浏览器(Chrome 39,OS X)和测试堆栈(Poltergeist 1.5.1 + PhantomJS 1.9.8)中都观察到了这种行为。

是什么原因造成的?有什么办法解决吗?

PS我的完整测试堆栈是Ruby on Rails + RSpec + Capybara + Poltergeist + PhantomJS,如果您知道触发shift-click的更好方法,请告诉我!

维杰
body.on('click', function(e) { 
    //e.stopPropagation();
    console.log('body', e.shiftKey);
});

我刚刚更新了您的jsfiddle:http : //jsfiddle.net/hus​​kssk1/1/

我所做的唯一更改是将jQuery版本更改为1.8.3,因为它没有触发输入的click事件,因此我在主体click事件处理程序中评论了e.stopPropogation

这清楚地表明两个版本的jQuery之间有些不同。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章