触发TypeAhead建议选择

时间:2014-04-30 00:44:52

标签: javascript jquery events capybara typeahead.js

对于我的生活,我无法弄清楚如何在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

0 个答案:

没有答案