0

我正在动态添加文本字段

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

这工作正常。但是当我尝试添加 listItems 属性时,它不起作用。

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

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

4

1 回答 1

3

首先要做的事情 - Ignite UI jQuery API 文档声明按钮选项默认为无 - 如果你想要一个下拉菜单,请添加:

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/

于 2013-10-18T16:17:47.797 回答