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;
}
}