我是writing some tests与Jasmine在PhantomJS中运行。一个测试使用$.Event
构造函数来触发虚假鼠标事件。例如:
$('.elem').trigger($.Event('click', {
target: $('.elem').find('.a-child')[0]
}));
这在Chrome,Firefox等中运行良好但在PhantomJS中无法启动。 mouseenter
也是如此。有趣的是,如果我做关键事件,它在PhantomJS中工作正常,它似乎只是鼠标。
有没有办法绕过这个,或者更好的方法来假装这个事件?
答案 0 :(得分:2)
似乎PhantomJS使用触摸事件而不是点击,这解释了失败。 Modernizr.touch
在PhantomJS中返回true
I ended up根据测试结果附加到触摸或点击:
nav.trigger($.Event(Modernizr.touch ? 'touchstart' : 'click', {
target: nav.find('a').get(1)
}));
可悲的是,这对mouseenter
或mouseleave
事件没有帮助。我能找到的最近的细节是this old bug report。