gpt4 book ai didi

javascript - 在 RichFaces 数据表内单击 outputLink 时避免 onRowClick 事件

转载 作者:行者123 更新时间:2023-12-03 09:58:48 26 4
gpt4 key购买 nike

如何避免在具有输出链接的列上的数据表上调用 onRowClick(目标到新窗口)?

<rich:dataTable id="dt" value="#{bean.cars} var="_car">
<a:support event="onRowClick" action="#{action.navigateToCarDetails(_car.id)}"/>

<rich:column>
<f:facet name="header">Select</f:facet>
<a:commandLink onclick="Event.stop(event)" action="#{bean.toggleSelectedCar(_car.id)}" reRender="dt" ajaxSingle="true" limitToList="true">
<h:graphicImage value="/img/icon_checkbox_#{bean.isCarSelected(_car.id) ? 'active' : 'inactive'}.gif"/>
</a:commandLink>
</rich:column>

<rich:column>
<f:facet name="header">Brand</f:facet>
<h:outputLink value="#{_car.link}" target="_blank">
<h:outputText value="#{_car.brand}"/>
</h:outputLink>
</rich:column>

<rich:column>
<f:facet name="header">Year</f:facet>
<h:outputText value="#{_car.year}"/>
</rich:column>

<rich:column>
<f:facet name="header">Color</f:facet>
<h:outputText value="#{_car.color}"/>
</rich:column>

</rich:dataTable>

因此,在上面的示例中,当我单击该行时,它将导航到包含汽车详细信息的页面。

当单击“选择”列的行时,它将更新所选的汽车,并相应地更新复选框图标,但不会导航到汽车详细信息页面,因为我有 onclick="Event.stop(event )”

但是当我单击outputLink框时,除了打开一个新窗口并显示制造商网页外,它还会将原始页面更新为汽车详细信息。我该如何防止这种情况发生? (我尝试像选择列一样添加 onclick 事件停止,但除了停止 onrowclick 事件之外,它还会阻止指向制造商网页的链接)

最佳答案

基本上,Event.stop(event) 的作用如下:

\\ stops the event from bubbling up the event chain
event.stopPropagation();

\\ prevents the default action the browser makes on that event
event.preventDefault();

在你的情况下,你只想防止冒泡,所以有一种方法:

onclick="event.stopPropagation()"

关于javascript - 在 RichFaces 数据表内单击 outputLink 时避免 onRowClick 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30649596/

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