gpt4 book ai didi

javascript - 如何添加指向

? 的链接

转载 作者:行者123 更新时间:2023-11-29 18:25:32 26 4
gpt4 key购买 nike

如何添加链接到 <p:submenu />用于 <p:megaMenu>

例如:

<!DOCTYPE html>
<ui:composition xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:c="http://java.sun.com/jsp/jstl/core"
template="/pages/template/homeTemplate.xhtml">

<ui:define name="content">
<p:megaMenu>
<p:submenu label="Home" url="/" />
<p:submenu label="Category" url="/cats">
<p:column>
<p:submenu label="Category 1" url="/cats/cat1">
<p:menuitem value="Item 1" url="/cats/cat1/item1"/>
<p:menuitem value="Item 2" url="/cats/cat1/item2"/>
<p:menuitem value="Item 3" url="/cats/cat1/item3"/>
</p:submenu>
</p:column>
</p:submenu>
</p:megaMenu>
</ui:define>

</ui:composition>

<p:submenu />没有 url属性,所以它会被忽略,我能做些什么呢?

最佳答案

我遇到了这个问题,我发现很多人说这是不可能的,因为 primefaces 不支持它,但如果你不介意使用一些 javascript,有一个解决方法:

<ui:composition xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:c="http://java.sun.com/jsp/jstl/core"
template="/pages/template/homeTemplate.xhtml">

<ui:define name="content">
<p:megaMenu id="megaMenu">
<p:submenu label="Home" url="/" styleClass="homeLink" />
<p:submenu label="Category" url="/cats" styleClass="catLink">
<p:column>
<p:submenu label="Category 1" styleClass="cat1Link">
<p:menuitem value="Item 1" url="/cats/cat1/item1"/>
<p:menuitem value="Item 2" url="/cats/cat1/item2"/>
<p:menuitem value="Item 3" url="/cats/cat1/item3"/>
</p:submenu>
</p:column>
</p:submenu>
</p:megaMenu>
<script type="text/javascript">
$(function(){
$(".homeLink a:first").attr('href', "#{request.contextPath}/");
$(".catLink a:first").attr('href', "#{request.contextPath}/cats");
$(".cat1Link").click(function(){
window.location.href="#{request.contextPath}/cats/cat1";
}).css('cursor','pointer');
});
</script>
</ui:define>

</ui:composition>

我在这里做的是:

1) 我定义了每个 <p:submenu>独家styleClass

2) 如果 <p:submenu>在第一行,我更改了<a>href在 DOM 准备好后将属性添加到我的链接:

$(function(){
$(".homeLink a:first").attr('href', "#{request.contextPath}/");
$(".catLink a:first").attr('href', "#{request.contextPath}/cats");
});

3) 如果<p:submenu>是菜单的一部分,我创建了一个 onclick属性并将光标自定义为指针,因为没有 <a>在那里标记。

$(".cat1Link").click(function(){
window.location.href="#{request.contextPath}/cats/cat1";
}).css('cursor','pointer');

这导致了我需要的菜单,当然,如果禁用了 javascript,该菜单将无法工作,但现在菜单可以在启用了 javascript 的浏览器上工作。

关于javascript - 如何添加指向 <p :submenu>? 的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13872197/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com