Twitter TypeAhead - MouseOver建议在input.tt-query中提出建议

时间:2014-03-04 12:50:15

标签: jquery twitter-typeahead

在标准Twitter TypeAhead中我有以下行为:

当用户开始输入时,会弹出建议,当他点击进入时,他被重定向到详细搜索页面,其中输入的文本用作url参数?query = [text]。这是预期的和Ok。

当用户在点击输入之前将鼠标放在建议上时,它会自动将此建议的标题放入tt-query-input(不可见)中,当点击enter时,搜索查询是建议的标题而不是他输入的内容。 我该如何避免这种行为?

我在点击输入时添加了此代码以重定向(其中txtQuery是我添加到with class' typeahead tt-query中的id:

   $('#txtQuery').bind("enterKey", function (e) {
         var url = '/?query=' + $('#txtQuery').val();
         window.location.href = url;
     });
     $('#txtQuery').keyup(function (e) {
         if (e.keyCode == 13) {
             $(this).trigger("enterKey");
         }
     });

1 个答案:

答案 0 :(得分:1)

显然,当您将鼠标悬停在建议上时会发生意外情况。无论出于何种原因,悬停将改变输入DOM中的值。您可以尝试阻止对事件执行的操作,如下所示:

$('.twitter-typeahead').on('mouseover', '.tt-suggestion', function(event){
  event.preventDefault();
  // verify input
  console.log($('#txtQuery').val());
});

编辑:

以同样的方式,您可以从“.tt-suggestion”项目中“取消绑定”keydown事件,以防止enter选择和提交。

HTH