【问题标题】:Toggle primefaces Tree - Checkbox Selection by clicking just checkbox directly切换 primefaces 树 - 通过直接单击复选框来选择复选框
【发布时间】:2017-09-15 22:26:11
【问题描述】:

您好,我正在使用带有变体复选框的组件树 - 选择。 组件中的一切工作正常,但我需要在节点的每个子节点旁边放置一个按钮,以使该节点的 id 发生某些事情,问题是如果我按下取消选中该节点的按钮。 这是我的代码:

<p:tree value="#{puntoscontrolController.rootDevices}" var="dev"
                                selectionMode="checkbox" selection="#{puntoscontrolController.selectedDevNodes}" style="border: none;"
>
                            <p:ajax event="select" listener="#{puntoscontrolController.selectUnidad(dev)}" update="growl"/>
                            <p:ajax event="unselect" listener="#{puntoscontrolController.unselectUnidad(dev)}" update="growl"/>
                            <p:treeNode type="ruta" icon="fa fa-list-ol">
                                <h:outputText value="#{dev.ruta}"/>
                            </p:treeNode>
                            <p:treeNode type="unidad" icon="fa fa-bus" >
                                <h:outputText value="#{dev.nombre}"/>
                                <button onclick="centrar(#{dev.idTraccar});">→</button>
                            </p:treeNode>
                        </p:tree>

结果看起来像这样: Image of tree checkbox selection

问题是,如果我单击节点较暗区域内的任何内容,它会取消选中该节点,所以我的问题是我是否可以制作复选框树以使选择事件仅在复选框中发生,而不是在里面的东西中发生p:treenode?

我知道这在以前的版本(如 3.4.1)中是可能的,但我目前使用的是 6.0 版本,因为我需要一些新功能。

【问题讨论】:

  • 在您的“中心”中防止“事件爆发”。所有纯 html/javascript。
  • 谢谢我用这个代码解决了这个问题:onclick="centrar(#{dev.idTraccar});event.stopPropagation();"
  • 请创建这个作为答案。您可以并且甚至被鼓励回答您自己的问题。

标签: jsf checkbox primefaces tree


【解决方案1】:

我解决了这个问题,按照@Kukeltje 的建议阻止了事件的传播。为了实现这一点,我使用了这段代码:

onclick="centrar(#{dev.idTraccar});event.stopPropagation();"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多