Jquery CSS不接收对数据属性的更改

Jquery CSS不接收对数据属性的更改,jquery,css,coffeescript,ujs,Jquery,Css,Coffeescript,Ujs,我有一个tr,悬停时显示一些链接 我想在单击链接时禁用悬停行为。为此,我正在更改tr上的数据属性behavior的值。但是CSS没有检测到数据属性的变化,并且链接仍然在mouseout上消失 链接: tr data-behaviour="has-hover-content" td = link_to task, data: { behaviour: 'toggle-confirm-spinner hover-content', confirm: "Delete?" }, remote

我有一个
tr
,悬停时显示一些链接

我想在单击链接时禁用悬停行为。为此,我正在更改
tr
上的数据属性
behavior
的值。但是CSS没有检测到数据属性的变化,并且链接仍然在mouseout上消失

链接:

tr data-behaviour="has-hover-content"
  td
    = link_to task, data: { behaviour: 'toggle-confirm-spinner hover-content', confirm: "Delete?" }, remote: true do
      = icon_tag 'trash-o'
咖啡脚本

  # When the user clicks the link
  # Disable the hover behaviour on the tr
  $(document).on 'confirm', '[data-behaviour~="toggle-confirm-spinner"]', ->
    $(@).closest('tr').data 'behaviour', 'false'
任何具有
data behavior=“has hover content”
数据属性的元素在悬停时,应显示具有
data behavior=“hover content”
的元素

当用户单击链接时,tr上的
数据行为
数据属性设置为false。这意味着将
tr
鼠标移走将不再隐藏链接。但是,它仍然存在。我提醒了data属性的新值,它们被正确设置。但是CSS忽略了这个变化


为什么呢?

假设使用jQuery,则必须使用而不是。这是因为
.data()
不会更改属性值;它修改数据属性的副本(jQuery在初始化时存储在内存中);CSS没有办法看到这一点。

假设使用jQuery,则必须使用而不是。这是因为
.data()
不会更改属性值;它修改数据属性的副本(jQuery在初始化时存储在内存中);CSS没有办法看到这一点

*[data-behaviour~="has-hover-content"] {

  a[data-behaviour~="hover-content"] {
    display: none;
  }

  &:hover a[data-behaviour~="hover-content"] {
    display: inline-block;
  }
}