Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript TypeError:PF(…)。hide不是函数_Javascript_Primefaces - Fatal编程技术网

Javascript TypeError:PF(…)。hide不是函数

Javascript TypeError:PF(…)。hide不是函数,javascript,primefaces,Javascript,Primefaces,我有一个简单的SSCCE: <?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="h

我有一个简单的SSCCE:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:p="http://primefaces.org/ui">
    <h:head>
        <title>Test</title>
    </h:head>
    <h:body>
        <p:panel id="button_panel" widgetVar="testPanel" closable="true" toggleable="true">
            <h1>Testing</h1>
        </p:panel>

        <p:commandButton onclick="PF('testPanel').show()" value="Show Panel" type="button"/>

        <p:commandButton onclick="PF('testPanel').hide()" value="Hide Panel" type="button"/>
    </h:body>
</html>

测试时,
show()
是否会导致相同的错误?很可能不是。至少我在实验室测试的时候没有

所以我知道这个页面没有什么问题,只是调用了一些函数。有时,错误只是由于组件实际上没有您尝试调用的javascript函数而导致的

因此,我查看了(假设版本为6.2)并注意到面板有:

Ajax行为事件

面板提供用于切换和关闭功能的自定义ajax行为事件

已激发事件侦听器参数

在面板展开或折叠时切换org.primefaces.event.ToggleEvent。

当面板关闭时,关闭org.primefaces.event.CloseEvent。

没有隐藏(和显示)事件/javascript函数(它们通常是1:1)。因此,我尝试了
close()
,结果成功了(正如
show()

因此,文档并不完整,但您的问题可能已经在其中找到了(showcase中也有相应的示例!)


事实秀的close as对应(而非hide)或open可能(应该)是close的对应部分有些不一致。请在他们的github中为此创建一个问题。

要在widgetvar上调用javascript函数,您必须这样做: PF('your_widgetvar_here').getJQ().show()

在Chrome的控制台中键入:PF('your_widgetvar_here'),然后输入一个句点,您将不会看到show()方法,但如果添加.getJQ(),则show方法将在那里


其他方法也一样,如click()--同样痛苦地出现在那里…..

你能添加几个链接到你尝试过的东西并说明它们没有帮助的原因吗?省去了我们太多的调查。如果你键入
PF('widgetVar'))
在浏览器开发人员控制台中?你看到了什么?你确定html是由xhtml生成的吗?标题不同?更新了标题,并在问题底部的评论中给出了问题的答案。此外,我还尝试过将面板和按钮包装成h:形式,这没有什么区别。太棒了-非常感谢!我有了复印机d使用另一个示例中的代码,而不是直接使用API文档,这是我的错误。不客气。文档和showcase的存在是有原因的。可能并不总是100%,但绝不是更少……不……这不是真的。小部件上的函数是PrimeFaces函数,并且执行与jq函数完全不同的操作。是的,你会得到调用不存在的函数时也会出现同样的错误,但OP所说的是PrimeFaces函数
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head id="j_idt2">
    <link type="text/css" rel="stylesheet"
    href="/AnnotateImages/javax.faces.resource/theme.css.xhtml?ln=primefaces-aristo" />
    <link type="text/css" rel="stylesheet"
    href="/AnnotateImages/javax.faces.resource/fa/font-awesome.css.xhtml?ln=primefaces&amp;v=6.2" />
    <link type="text/css" rel="stylesheet"
    href="/AnnotateImages/javax.faces.resource/components.css.xhtml?ln=primefaces&amp;v=6.2" />
    <script type="text/javascript"
    src="/AnnotateImages/javax.faces.resource/jquery/jquery.js.xhtml?ln=primefaces&amp;v=6.2">
    </script>
    <script type="text/javascript"
    src="/AnnotateImages/javax.faces.resource/jquery/jquery-plugins.js.xhtml?ln=primefaces&amp;v=6.2">
    </script>
    <script type="text/javascript"
    src="/AnnotateImages/javax.faces.resource/core.js.xhtml?ln=primefaces&amp;v=6.2">
    </script>
    <script type="text/javascript"
    src="/AnnotateImages/javax.faces.resource/components.js.xhtml?ln=primefaces&amp;v=6.2">
    </script>
    <script type="text/javascript">
    if(window.PrimeFaces){PrimeFaces.settings.locale='en_GB';}</script>
    <title>Test</title>
  </head>
  <body>
    <div id="button_panel"
    class="ui-panel ui-widget ui-widget-content ui-corner-all"
    data-widget="testPanel">
      <div id="button_panel_content"
      class="ui-panel-content ui-widget-content">
        <h1>Testing</h1>
      </div>
      <input type="hidden" id="button_panel_collapsed"
      name="button_panel_collapsed" value="false" />
      <input type="hidden" id="button_panel_visible"
      name="button_panel_visible" value="true" />
    </div>
    <script id="button_panel_s" type="text/javascript">
    PrimeFaces.cw("Panel","testPanel",{id:"button_panel",toggleable:true,toggleSpeed:500,collapsed:false,toggleOrientation:"vertical",toggleableHeader:false,closable:true,closeSpeed:500});</script>
    <button id="j_idt6" name="j_idt6"
    class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"
    onclick="PF('testPanel').show()" type="button">
      <span class="ui-button-text ui-c">Show Panel</span>
    </button>
    <script id="j_idt6_s" type="text/javascript">
    PrimeFaces.cw("CommandButton","widget_j_idt6",{id:"j_idt6"});</script>
    <button id="j_idt7" name="j_idt7"
    class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"
    onclick="PF('testPanel').hide();" type="button">
      <span class="ui-button-text ui-c">Hide Panel</span>
    </button>
    <script id="j_idt7_s" type="text/javascript">
    PrimeFaces.cw("CommandButton","widget_j_idt7",{id:"j_idt7"});</script>
  </body>
</html>
Object { _super: undefined, cfg: {…}, id: "button_panel", jqId: "#button_panel",
   jq: Object(1), widgetVar: "testPanel", header: {…}, title: {…}, 
   content: Object(1), toggler: {}, … 
}