PrimeFaces 6.2 commandButton标题在禁用commandbutton时不起作用

wol*_*084 3 jsf primefaces

环境:JSF 2.2.14,PrimeFaces 6.2

我将命令按钮设置如下,当禁用按钮时,标题将在PF6.1中显示(悬停时),但不会在PF6.2中显示

<p:commandButton id="removeCmd" icon="fa fa-times" 
             actionListener="#{controller.remove()}" 
             update="@form"
             disabled="#{ontroller.isCommandDisabled()}"                                                          
             style="width: 20px; height:20px;margin-left: 5px;"
             title="#{controller.isCommandDisabled() ? 'Command disabled due to user privilege' : 'remove selected item'}"
             onstart="PF('bui').show(); PF('bar').show();" 
             oncomplete="PF('bui').hide(); PF('bar').hide();"
             styleClass="removeCmd"/>
Run Code Online (Sandbox Code Playgroud)

未禁用按钮时标题显示良好。

有人遇到同样的问题吗?我还尝试将我的p:commandButton包装在h:panelGrid内,并使用p:tooltip,两者都不起作用。

更新:在github上创建的问题:https : //github.com/primefaces/primefaces/issues/3656

Kuk*_*tje 7

从本质上来说,我很好奇(我对PrimeFaces的更改有所了解)。如果按钮的标题在6.1和6.2之间不再起作用,那么我开始进行一些分析。在两个PrimeFaces版本中,为按钮生成的html是相同的。这使我思考是否也将停止为其他组件工作。所以我创建了一个简单的页面

<p:inputText title="myInput enabled" />
<p:inputText title="myInput disabled" disabled="true"/>
Run Code Online (Sandbox Code Playgroud)

并且使用PrimeFaces 6.1和6.2之间的行为更改是相同的。标题适用于6.1和6.2中的第一个。由于PrimeFaces 6.1和6.2之间存在重大的jquery更改,因此我在Google中发布了“禁用输入和按钮的jquery显示标题工具提示”。

热门之一是: 显示禁用项目的工具提示

其中引用了一些css(!),它禁用了dom事件,因此不显示标题。

pointer-events: none;
Run Code Online (Sandbox Code Playgroud)

我打开了浏览器开发人员工具,然后在css选项卡的过滤器部分中放置了“指针”。使用6.1时,那里什么都没有,但是6.2中没有。

.ui-state-disabled {
    cursor: default !important;
    pointer-events: none;
}
Run Code Online (Sandbox Code Playgroud)

这似乎来自components.css文件(根据我的浏览器开发人员工具)。这不是PrimeFaces存储库中存在的文件,而是通过maven构建PrimeFaces版本时创建的文件:

此处包含的文件之一是jquery-ui.css,其中是上面引用的css文件。

当我pointer-events: none在浏览器开发人员工具中禁用相应的内容时,输入和按钮的标题均可见。

因此,如果您想覆盖此设置,请将其设置为“全部”(或您喜欢的其他任何值)。

html .ui-state-disabled {
    pointer-events: all;
}
Run Code Online (Sandbox Code Playgroud)

也可以看看