将Typeahead动态附加到动态生成的输入

时间:2015-06-18 08:53:32

标签: jquery typeahead

我正在动态创建女巫的输入,我需要附上一个推特类型。

由于html是动态生成的服务器端,输入标签只能从它的类中选择,我发现附加它的唯一方法是使用delegate() Jquery函数。

为了在每个输入上只附加一次预先输入,我在undelegate()之后立即使用delegate()功能。

$(document).delegate(".receivers-input", "click", function () {
        console.log($(this)); // input.receivers-input.col-md-4.col-sm-4.col-xs-4
        $(this).undelegate($(this));
        $(this).typeahead({
            minLength: 0,
        }, {
            source: function (query, cb) {
                var Request = $.ajax({
                ...                     

这很有效,但是当我点击附加的预先输入时,我收到此错误消息:

  

未捕获的TypeError:无法读取属性' origType'未定义的

这可能是因为$(this).undelegate($(this));

是否有人知道如何防止此错误或有除delegate / undelegate以外的其他方式来实现我的目标?

1 个答案:

答案 0 :(得分:0)

看起来我搜索功能太远而没有看到最简单的解决方案。 我通过修改选择器实现了我的目标...

这是代码:

$(this).on("click", ".receivers-input:not(.tt-input)", function () {
        $(this).typeahead({
            minLength: 0,
        }, {

on绑定与委托一样,它将处理程序绑定到与选择器匹配的每个现有或未来元素。

由于预先输入一些数据到输入它附加到(tt-hinttt-input等...),我只是添加选择器:not女巫排除元素与先行班。

希望有一天这可能对某人有所帮助。