对于我的生活,我无法弄清楚如何在TypeAhead
输入上触发建议选择
我尝试过各种各样的事情,比如
.trigger('suggestionClicked', $('.tt-dropdown-menu .tt-suggestion:nth-child(1)'))
我想这个问题实际上有两个部分。
1。正确选择实际的TypeAhead对象。
我主要是通过将(focus()
)聚焦在输入字段上,然后使用jQuery查找活动的元素($(document.activeElement)
)。这可能不是最好的方法。在浏览器web检查器中进行测试非常困难,因为每次进入控制台时我都会失去焦点然后菜单消失(从字面上删除DOM中的结果)
2。触发正确的事件。
我不确定要触发哪个对象或哪个事件,但我最好的猜测是suggestionClicked
对象或TypeAhead
对象上的TypeAhead.Dropdown
。第二个最好的猜测是click.tt
。
我可能会过分思考这个。
如果您真的关心这背后的原因,那是因为我需要通过Capybara / Selenium测试功能。
我在github上一直 browsing the source code 以获得一些见解。
这是我的水豚尝试中的一个步骤。我觉得我已经接近了,但现在还没有。
steps.rb
Then /^I select result number "([^\"]*)" from typeahead$/ do |num|
find('.tt-dropdown-menu')
#within('.tt-dropdown-menu') do
page.execute_script %Q{$(document.activeElement).dropdown().trigger('suggestionClicked', $('.tt-dropdown-menu .tt-suggestion:nth-child(#{num})'))}
#end
end