【发布时间】:2010-10-10 03:45:28
【问题描述】:
我正在为 TinyMCE 编写一个插件,我想让 ListBox B 依赖于在 Listbox A 中选择的内容。我可以这样做,以便 ListBox A 中的初始选择填充 ListBox B,但我无法进行第二次选择,将 ListBox B 擦干净,然后用新项目填充 ListBox B。
我试过只使用原生 ListBoxes 和 JQuery 函数,但 JQuery 在页面上找不到它们。
谢谢!
【问题讨论】:
我正在为 TinyMCE 编写一个插件,我想让 ListBox B 依赖于在 Listbox A 中选择的内容。我可以这样做,以便 ListBox A 中的初始选择填充 ListBox B,但我无法进行第二次选择,将 ListBox B 擦干净,然后用新项目填充 ListBox B。
我试过只使用原生 ListBoxes 和 JQuery 函数,但 JQuery 在页面上找不到它们。
谢谢!
【问题讨论】:
TinyMCE 创建一个 iframe 来保存它正在编辑的内容,因此您要搜索的列表框在其中而不是在主文档中。您可以使用 tinymce.get('editor_id').getDoc() 函数从 iframe 中检索文档(请参阅 http://tinymce.ephox.com/documentation/api/index.html#class_tinymce.Editor.html-getDoc)。如果您在该文档上定位标准 JQuery 函数,它应该可以工作。
问候,
阿德里安·萨顿。
http://tinymce.ephox.com
【讨论】:
这是一个适合我的解决方法。我的 ListBox 包含类名(cssclass 是一个包含简单字符串的变量):
listbox = ed.controlManager.get('p_style'); // listboxname
if (typeof listbox == "undefined") return;
// after rendering, no new listbox elements can be entered -> workaround
if (listbox && listbox.isMenuRendered) {
listbox.menu.destroy();
listbox.isMenuRendered = false;
listbox.oldID = 0;
}
// class zu Listboxen hinzufügen
if (listbox)
listbox.add(cssclass, cssclass);
【讨论】: