我想实现表格行是可点击的。我通过更改 CSS 中的悬停光标以及在表格行上实现单击事件来实现这一点,该事件转到data-href
属性中指定的链接。
问题是,表格行中有一些按钮,它们会触发 AJAX 请求。因此,当我单击这些按钮时,我希望阻止父行上的单击事件。
这是我当前的实现(在 CoffeeScript 中):
jQuery.fn.preventClick = -> $(@).data("disabled", true)
jQuery.fn.isClickPrevented = -> $(@).data("disabled")
jQuery.fn.enableClick = -> $(@).removeData("disabled")
$("#table tr").click ->
window.location = $(@).data("href") unless $(@).isClickPrevented()
$(@).enableClick()
$("#table tr").on "click", "[data-remote='true']", ->
$(@).closest("tr").preventClick()
我依赖于子点击事件在父点击事件之前触发的事实。
对我来说,这看起来太复杂了。有没有更优雅的方法来实现这一点?