Javascript 触发提前类型建议选择

Javascript 触发提前类型建议选择,javascript,jquery,events,capybara,typeahead.js,Javascript,Jquery,Events,Capybara,Typeahead.js,就我的一生而言,我不知道如何在TypeAhead输入上触发建议选择 我试过各种各样的方法,比如 .trigger('suggestionClicked', $('.tt-dropdown-menu .tt-suggestion:nth-child(1)')) 我想这个问题实际上有两部分 1。正确选择实际的TypeAhead对象。 我主要通过在输入字段上聚焦(focus()),然后使用jQuery查找活动的元素($(document.activeElement))。这可能不是最好的办法。在浏览器

就我的一生而言,我不知道如何在
TypeAhead
输入上触发建议选择

我试过各种各样的方法,比如

.trigger('suggestionClicked', $('.tt-dropdown-menu .tt-suggestion:nth-child(1)'))
我想这个问题实际上有两部分

1。正确选择实际的TypeAhead对象。

我主要通过在输入字段上聚焦(
focus()
),然后使用jQuery查找活动的元素(
$(document.activeElement)
)。这可能不是最好的办法。在浏览器web inspector中进行测试非常困难,因为每次进入控制台时,我都会失去焦点,然后菜单就会消失(从DOM中删除结果)

2。触发正确的事件。

我不确定要触发哪个对象或事件,但我的最佳猜测是在
TypeAhead
对象或
TypeAhead.Dropdown
对象上单击
suggestion
。其次是
单击.tt

我可能想得太多了

如果您真的关心这背后的原因,那是因为我需要通过Capybara/Selenium测试功能

我在github上了解了一些情况

这是我尝试水豚的一步。我觉得我快到了,但还没到那一步

步骤.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

如果在DOM中检查元素,则不需要进入检查器(它应该捕捉到要查找的元素)。尝试在Chrome中单击inspector中的放大镜。只需将鼠标悬停在元素上,就可以帮助您找到所需的元素。