jquery – 使用输入元素上的修饰键触发click事件

我正在为一些涉及用户按住Shift键点击复选框的功能编写测试.我正在使用$(‘input’).触发器($.Event(‘click’,{shiftKey:true}));模拟那个.

但是当事件监听器被调用时,event.shiftKey属性在源自我的合成事件时总是被报告为false,而实际的点击产生所需的效果.什么更令人困惑,在非输入元素上触发相同的事件似乎工作得很好.例如,请参见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事件所以我评论了来自body click事件处理程序的e.stopPropogation.

这清楚地表明jQuery的两个版本之间存在某些不同.

相关文章
相关标签/搜索