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中的放大镜。只需将鼠标悬停在元素上,就可以帮助您找到所需的元素。