【发布时间】:2014-02-03 13:34:04
【问题描述】:
我几乎没有前端开发经验,更不用说 web ui 不在我的星球上..
我需要在按钮的 onClick 事件上显示和隐藏元素的问题。 技术栈是带有 PrimeFaces 的 JSF,对于我们使用 JavaScript 的脚本。
基本上 - 我如何获得对我需要显示/隐藏的元素的引用? 你能告诉我为什么评论中的那行(下面)行得通吗?
function test(id, id2){
var element =$(document).get("#testEl");
$(element).show(); //this doesn't work??? although I get no errors executing it..
// $("#tab-view\\:template-form\\:testEl").show(); // <-- however this works? Why?
$(btn).css("display", "none");
}
html:
<p:commandButton widgetVar="edit" id="edit" value="Edit" onclick="test(this, #testEl)" type="button"/>
<p:panel widgetVar="opa" id="testEl" closable="false" visible="false" >
<h:panelGrid ..>....
</h:panelGrid>
</p:panel>
谢谢!
【问题讨论】:
-
你需要阅读文档而不是随机调用函数。
-
看起来你为你的元素使用了花哨的 id
#tab-view:template-form:testEl。在这种情况下,您必须使用 `\\` 转义冒号。 -
它们在代码中被转义...
-
您缺少引号。应该是
onclick="test(this, '#testEl')" -
如果您意识到并理解 JSF 仅仅是一个 HTML 代码生成器(它在网络服务器上运行并生成一些 HTML 输出,这些输出由网络服务器发送到网络浏览器)并且 JS/jQuery 仅能工作,这一切都会变得更容易在 HTML DOM 树上(它在检索到的 HTML 输出的 webbrowser 中运行)。在浏览器中打开页面,右键单击并查看源代码。仔细看。 那 正是 JS/jQuery 实际看到的。换句话说,您的 JS/jQuery 代码不应基于 JSF 源代码,而应基于其生成的 HTML 输出。
标签: javascript jquery jsf primefaces