Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 跟踪typeahead.js从搜索加载新内容的时间_Javascript_Jquery - Fatal编程技术网

Javascript 跟踪typeahead.js从搜索加载新内容的时间

Javascript 跟踪typeahead.js从搜索加载新内容的时间,javascript,jquery,Javascript,Jquery,我有一个来自Twitters typeahead.js的简单的typeahead,它非常有效。但是,我需要跟踪搜索结果何时更改,以便加载一个函数,该函数将从typeahead加载results div中的特定图像 我的typeahead代码如下所示: $('#search').typeahead({ remote: 'ajax-connect.php?search&q=%QUERY', valueKey: 'header', autoselect: true,

我有一个来自Twitters typeahead.js的简单的typeahead,它非常有效。但是,我需要跟踪搜索结果何时更改,以便加载一个函数,该函数将从typeahead加载results div中的特定图像

我的typeahead代码如下所示:

$('#search').typeahead({
    remote: 'ajax-connect.php?search&q=%QUERY',
    valueKey: 'header',
    autoselect: true,
    template: [
        '<a href=\'{{link}}\' class=\'group\'>',
        '<span class=\'image\'><img style=\'width:60px;height:60px;\' data-fk=\'{{user_id}}\' data-type=\'{{fk_type}}\' data-width=\'60\' class=\'repo-avatar\' src=\'" . GetAvatar() . "\'></span>',
        '<span class=\'details\'>',
        '<p class=\'repo-name\'>{{header}}</p>',
        '<p class=\'repo-note\'>{{note}}</p>',
        '<p class=\'repo-description\'>{{description}}</p>',
        '<p class=\'rep-subfield\'>{{subfield}}</p>',
        '<p class=\'type\'>{{type}}</p>',
        '</span>',
        '</a>'
    ].join(''),
    engine: Hogan
})
.bind('typeahead:selected', function () {
    $('form').submit();
});
但这不起作用

函数
setavatarurls
如下所示:(也许有一种方法,一般来说,它只需查找任何新的,然后运行函数?)

有什么建议吗?我已经搜索了很长一段时间了,但总的来说,关于Twitters Typeahead.js的信息并不多

我也尝试了以下代码,但我只在加载时以及当您从搜索栏中单击,然后再次单击时向我发出警报:

.bind('typeahead:opened', function () {
    alert('now!');
    SetAvatarUrls();
});
请注意:在3.0版之前,最初的Typeahead被弃用之后,我正在使用引导程序推荐的Twitters Typeahead.js


提前谢谢

您是否尝试过以下修改后的typeahead.js版本:?
它提供了附加一些事件的可能性,也许它有你所需要的

更新: 试试这个:

$('#search').on('keyup', function() { alert('test'); SetAvatarUrls() });
如果您只想在typeahead提示某些内容时调用
SetAvatarsUrls()
,请尝试以下操作:

$('#search').on('keyup', function() { 
    if($('.tt-dropdown-menu span.tt-suggestions div.tt-suggestion').length > 0) {
        alert('test');
        SetAvatarUrls();
    }
});

您可以使用Typeahead收听一些标准事件。(见附件)

typeahead:opened
是您的活动

$('#search').on('typeahead:opened', function() { 
    if($('.tt-dropdown-menu span.tt-suggestions div.tt-suggestion').length > 0) {
        alert('test');
        SetAvatarUrls();
} });

你好!我没有使用Bootstrap版本(因为它在3.0版就已经被弃用了),所以我使用了Twitters Typeahead.js(正如Bootstrap推荐的那样)。我刚才试过那个插件。关于:
$('#search').on('keyup',function(){alert('test');SetAvatarUrls()})?或者您需要准确跟踪“是否有来自服务器的响应”?非常感谢您抽出时间来帮助我,但这也不起作用。@Mattias,以下是我尝试过的内容,它正在发挥作用:如果可以,发布您的HTML,我们将看到问题所在;)谢谢你的建议,不过,正如在文章中所描述的,我已经尝试过这个解决方案,但它只会在“焦点”事件中触发。不过,你将该事件绑定到了什么?是不是有Typeahead附加到它的元素?
$('#search').on('keyup', function() { 
    if($('.tt-dropdown-menu span.tt-suggestions div.tt-suggestion').length > 0) {
        alert('test');
        SetAvatarUrls();
    }
});
$('#search').on('typeahead:opened', function() { 
    if($('.tt-dropdown-menu span.tt-suggestions div.tt-suggestion').length > 0) {
        alert('test');
        SetAvatarUrls();
} });