【发布时间】:2021-11-16 07:21:44
【问题描述】:
我有一个定义了“背景颜色”的元素,并且在自定义“数据”属性中有另一个颜色值。
点击时我需要做的是交换这两个值(每次点击按钮时切换它们)。
问题:这些值会与我的代码交换一次,然后出现问题,交换不再起作用。
代码如下:
<span class="button" title="Switch background color"></span>
<div class="targeted-element" style="background-color: #dedede;" data-new-color="rgba(14,22,33,1)"></div>
<script>
$( 'span.button' ).on( 'click', function(e) {
event.preventDefault();
$( '.targeted-element' ).each(function() {
var $back_color = $( this ).css( 'background-color' );
var $new_color = $( this ).data( 'new-color' );
$( this ).css( 'background-color', $new_color );
$( this ).attr( 'data-new-color', $back_color );
});
});
</script>
【问题讨论】:
-
注意,我也试过 $( this ).data( 'new-color', $back_color );首先(而不是 $( this ).attr( 'data-new-color', $back_color ); )但是什么也没做。
标签: jquery onclick swap custom-data-attribute value-of-css-property