2014-03-26 100 views
2

我明白typeahead.js不支持移动呢。typeahead.js iOS的Safari浏览器VS独立的Web应用程序的差异

即使它在移动浏览器(Safari移动),没有任何人有一个想法,为什么一次的形式通过网页的“独立”的版本认为它可能无法正常工作?

发生的问题是,当我尝试'点击/触摸'建议下拉菜单时,它不会在独立版本中使用该条目填充输入,Safari浏览器版本确实有效。

是这种类型的行为记录任何地方或已知的iOS?

谢谢。

此外:我添加了一个jQuery的委托点击侦听器到.tt-suggestion显示警报,它适用于移动Safari,但不是在独立版本(我认为委派事件不附加)。

$(document).on('click', '.tt-suggestion', function(e) { 
    alert('clicked'); 
}); 
+1

您使用的是FastClick库呢? Typeahead 0.10.2和FastClick存在问题,现在我不得不恢复到0.10.1。 – zim2411

+0

对,我意识到这一点,并提供了一种解决方法,我将在下面发布。 – Tony

回答

4

我意识到我还在使用FastClick库,它可以缩短下拉菜单和所选选项之间的延迟时间。

要解决它,绑定一个DOM突变监听器和needsclick类下添加到每个<p>类各<div class="tt-suggestion">

$('.tt-dropdown-menu').bind('DOMNodeInserted', function(e) { 
    $(e.target).find('.tt-suggestion').children('p').addClass('needsclick'); 
}); 

您可能还可以使用侦听尝试:

$('input.typeahead').change(function(e) { 
    $(this).closest('.tt-dropdown-menu').find('.tt-suggestion').children('p').addClass('needsclick'); 
}); 

或使用的活动委托人:

$('.tt-dropdown-menu').click(function(e) { 
    $(e.target).children('p').addClass('needsclick'); 
}); 

注意:函数未经测试,它们基于内存。

+0

今天有点点儿了;谢谢。值得注意的是,绑定到像DOMNodeInserted这样的dom突变可能意味着性能有所下降。 – deefour

+0

needsclick可以通过typehead.js的模板引擎添加 –

相关问题