在igEditor中输入基本元素时,listItems不起作用

时间:2013-10-12 06:31:57

标签: javascript infragistics ignite-ui

我正在动态添加文本字段

var input = $('<input class="EditorFields" id="textfield"/>');
$(input).igEditor({
                width: 140,
                required:true
            });

这很好用。 但是,当我尝试添加listItems属性时,它无法正常工作。

$(input).igEditor({
                width: 140,
                required:true,
                listItems : ["red","blue","yellow"]
            });

我不想更改要选择的基本元素。 请帮忙。

1 个答案:

答案 0 :(得分:3)

第一件事 - Ignite UI jQuery API docs状态,按钮选项默认为none - 如果你想要一个下拉列表添加这个:

button : "dropdown",

为什么这仍然不起作用?如果您不太详细地了解它们,动态添加动态控件有时会很棘手。对于jQuery来说,这是人们常见的错误 - jQuery在文档片段中创建项目,因此您需要小心将它们附加到DOM。

当您提供INPUT元素并请求复杂的编辑器时,控件的附加项(按钮,下拉列表,验证消息等)是围绕该输入构建的,整个事物都包含在容器SPAN中。因为你引用了输入,它是第一次我假设你直接附加它。基本上,当您创建复杂编辑器并且之后仅使用相同的输入引用附加到eh DOM时,您将留下所有额外的标记卡在文档片段中。

我可以想到3种方法可以让它发挥作用,你可以选择最符合yopur需求的方法:

1)首先添加项目,以便编辑器可以在DOM中正确初始化:

var input = $('<input class="EditorFields" id="textfield"/>').appendTo("body");

2)如果可能的话,提供容器,而不是输入:

var input1 = $('<span class="EditorFields" id="textfield1"/>');

3)如果您知道父母有父母,请选择父母,然后将其添加:

 $(input2).igEditor({
        width: 140,
        required: true,
        listItems: ["red2", "blue2", "yellow2"],
        button: "dropdown"
    }).parent().appendTo("body");

这是一个包含所有这些内容的JSFiddle:http://jsfiddle.net/damyanpetev/ZRqb2/