javascript - 否决 rowOnClick t :datatable

标签 javascript jsf datatable

我有一个 t:datatable 并触发了 rowOnClick 事件。这可行,但我在一列中有一个图标,当您单击该图标时,会打开一个弹出窗口。但它也会触发 rowOnClick 事件。我不希望这样,对于该图标,我不希望触发 rowOnClick 事件。

是否可以覆盖/否决数据表中某些列的 rowOnClick 事件。

<t:dataTable rowClasses="row1,row2" id="typelist" value="#{vehicle.vehicleTypeList}" rowOnClick="selectType(#{vehicle_types.id},#{vehicle_types.reference})">

...
...
...

  <t:column id="carinformation" >
    <h:outputLink styleClass="listicons" value="#" onclick="popup=window.open('vehicle/detail.xhtml?vehicleid=#{vehicle_types.id}','vehciledetails','width=800,height=500,resizable=yes,scrollbars=yes');popup.focus();return false;" >
      <img src="images/information.gif" title="${msg.vehicle_information}"/>
    </h:outputLink>
  </t:column>   
</t:dataTable>  

最佳答案

DOM 元素可以相互嵌套。不知何故,即使您单击它的子级,父级的处理程序也会工作。

原因是事件冒泡。

要停止此操作,请将 event.stopPropagation(); 添加到图像链接的 onclick 中,使其看起来像这样:

<h:outputLink onclick="event.stopPropagation(); popup=window.open('vehicle/detail.xhtml?vehicleid=#{vehicle_types.id}','vehciledetails','width=800,height=500,resizable=yes,scrollbars=yes');popup.focus();return false;" >
  <img src="images/information.gif" title="${msg.vehicle_information}"/>
</h:outputLink>

了解更多:

关于javascript - 否决 rowOnClick t :datatable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24258397/

相关文章:

javascript - 编辑后无法使用 Javascript 填充文本框

javascript - 将数据从 Python 脚本发送到浏览器(在 Linux 上的 xserver 下)

jsf - 通过 JSF 将 PDF 发送到浏览器

jsf - 验证 h :selectBooleanCheckbox only if all the other inputs are valid

java - JSF 2 View 验证上的 JBoss AS 7.1.1.Final : serverError: class java. lang.IllegalStateException

jquery - dataTables排序顺序描述问题

javascript - AJAX 轮询和循环

javascript - 如何使对象/属性显示在指令中?

javascript - 如何在数据表中显示 Bootstrap 选择组合框?

C# DBNull 和可空类型 - 最干净的转换形式