首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在动态元素上附加magicsuggest

在动态元素上附加magicsuggest
EN

Stack Overflow用户
提问于 2016-07-12 16:04:47
回答 2查看 471关注 0票数 0

我想问一下如何将magicsuggest附加到多个动态元素上?以前有人这么做过吗?

情况是这样的,每次我输入“逗号”或“回车”时,它都会创建一个带有两个输入的面板,每个面板都有魔术提示。所以如果我输入:

代码语言:javascript
复制
 1 towel, 2 plates

它应该创建2个面板与2个输入,每个与魔术建议。

上面的情况已经发生了,但现在的问题是,当它加载所有的输入时,它总是专注于第一个输入。我可以选择其他的,但总是专注于第一个。

我已经试过这段代码了,但是没有用。

代码语言:javascript
复制
var ms = {};
for(var i = 1; i <= 2; i++){        

    ms[i] = $('#text_area_request_'+i).magicSuggest({
        id: "request_id_" + i,
        name: "request_id[" + i + "]",
        allowFreeEntries: false,            
        width: 350,
        maxSelection: 1,    
        data: ["Wifi", "Steak", "Food", "Water"],           
    });

}   

谢谢

EN

回答 2

Stack Overflow用户

发布于 2016-09-18 19:45:01

首先,您忘记了数据键末尾的逗号("Water"],)。

如果您将其删除,但仍然不起作用..您可以尝试执行以下操作。

创建一个函数attachMagicSuggest('text_area_request_0'),该函数将您想要填充数据的输入的ID作为参数。

每次你创建一个新的面板(或者你管它叫什么),也运行这个函数。

代码语言:javascript
复制
function attachMagicSuggest(inputId){

    var ms1 = $('#'+inputId).magicSuggest({
     placeholder: 'Select a cuisine',
     allowFreeEntries: false,            
     width: 350,
     maxSelection: 1,    
     data: ["Wifi", "Steak", "Food", "Water"]
    });

}
票数 0
EN

Stack Overflow用户

发布于 2017-10-17 08:27:43

我不完全确定你所说的焦点是什么意思,但也许问题是你每次都引用相同的对象。确保每次在循环中使用不同的对象。magicSuggest的返回值不能直接附加到另一个jquery对象,所以我必须使用一个类似如下的函数:

代码语言:javascript
复制
function buildMagicSuggest(id, options, setValue) {
    var $input = $('<input>', {id: id, class: 'form-control'});
    var data = [];
    for (var i = 0; i < options.length; i++) {
        if (options[i] === null) {
            continue;
        }
        var name = options[i] === '' ? '&nbsp;' : options[i];
        data.push({id: options[i], name: name});
    }
    var magic = $input.magicSuggest({
        placeholder: '',
        allowFreeEntries: true,
        selectPositions: 'bottom',
        selectionStacked: false,
        maxDropHeight: 145,
        maxSelection: 1
    });
    magic.setData(data);
    setValue && magic.setValue([setValue]);
    return magic.container;
}

然后,您可以像这样使用此函数:

代码语言:javascript
复制
$('#the-form').append(buildMagicSuggest(
    inputId,
    ["Wifi", "Steak", "Food", "Water"],
    "Wifi"
));

关键是找到包含整个控件(容器)的magicSuggest对象的正确属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38323197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档