【发布时间】:2011-06-15 21:24:27
【问题描述】:
很多与样式相关的 jquery 自动完成问题(yow),但没有一个想要“匹配父输入的样式”。
我的背景
我是一名 java/c++ 程序员,在 JS 方面也有相当多的经验……在 PDF 中。 PDF 使用与 HTML 完全不同的对象模型,我刚刚开始习惯它。我对 jQuery 很陌生。
我希望我的 JQUI 自动完成控件的样式与相应输入的样式相匹配。边框样式、字体、字号等。
问题
这是针对不真正使用 CSS 的表单生成应用程序(就用户而言)。每个字段可能有自己的字体和字体大小、背景颜色等。我希望不会,但该死的吉姆,我是程序员而不是平面设计师!不是我的部门。
无论如何,这是以编程方式生成的 HTML(用 Java 完成),所以一些在手动标记中可能很简单的事情是不可能的,而一些几乎不可能的事情是相当微不足道的.
每个输入字段都有一个 ID,因此创建正确的选择器很容易。用那个选择器做什么是令人头疼的部分。在运行时获取和解析脚本中的样式属性似乎工作量太大。一定有更好的方法。
理想情况下,它会是这样的:
var stylesToCopy = $("#fieldID").???;
$(???).magicallyApplyStyles(stylesToCopy);
查看自动完成(在萤火虫中)生成的标记,我没有看到 ID 或任何东西来将该特定 UL 标记为“附加”到给定输入。而且我没有看到任何添加到输入的内容以另一种方式附加。呸。
那么男人该怎么办?
进一步调查:autocomplete() 返回选定的输入,而不是自动完成控件本身。呸。
嗯……
每个输入可能有不同的样式(全部设置为内联),所以我认为基于类的技术不会起作用。这也意味着我需要一个可以选择正确 UL 的选择器。
想法
有点笨拙,但它会起作用:为每个自动完成添加一个带有 ID 的 div 到正文,并将其用作 appendTo。然后选择器成为“ID such-n-so 的第一个孩子”。我不确定这将如何影响自动完成的定位......也许根本不会。它们已经在 DOM 树中不同深度的不同分支中。
$("#such-n-so:first-child").css(someAttr, someVal);
有了css 和这个 li'l hack,我有一个可行的理论......但它似乎是“很长的路要走”。希望你们中的一位 jQuery 大师可以为我提供一些更清洁的东西。
【问题讨论】:
标签: javascript jquery css jquery-ui-autocomplete