我正在为某些功能编写测试,该功能涉及用户按住Shift键并单击复选框。我$('input').trigger($.Event('click', { shiftKey: true }));
用来模拟。
但是,当调用事件侦听器时,event.shiftKey
总是将属性报告为false
源自我的合成事件,而真正的点击会产生所需的效果。更令人困惑的是,在非input
元素上触发相同事件似乎正常。例如,请参见http://jsfiddle.net/huskssk1/。
我在浏览器(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/huskssk1/1/
我所做的唯一更改是将jQuery版本更改为1.8.3,因为它没有触发输入的click事件,因此我在主体click事件处理程序中评论了e.stopPropogation。
这清楚地表明两个版本的jQuery之间有些不同。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句