如何根据输入 aria-valuenow 中以编程方式更改的数据添加 class
How to add a class based on programmatically changed data in input aria-valuenow
我之前问了一个关于如何“”的问题,我得到了一个解决方案,但我认为当输入中的滑块变为零时它会改变。
它仅适用于 aria-valuenow
中加载的内容。例如,如果加载了 aria-valuenow=50
,则代码将不起作用,但如果加载了 area-valuenow=0
,则它可以工作。
那么如何根据以编程方式更改值的输入将 class 添加到 div?
代码:
<div class="plyr__control js-volume" data-plyr="mute">My Button</div>
<input data-plyr="volume" type="range" min="0" max="1" step="0.05" value="1"
autocomplete="off" role="slider" aria-label="Volume" aria-valuemin="0"
aria-valuemax="100" aria-valuenow="*programmatically changes*" id="plyr-volume-2587" style="--value:0%;
width: 0px; left: 200px;" aria-valuetext="0.0%" class="plyr__tab-focus">
JS代码:
$(function() {
var val = $('.plyr__volume input').attr('aria-valuenow');
if(val == "0") $('.js-volume').addClass('test');
})();
输入值变化的工作示例 -
https://codepen.io/openbayou/pen/JQeEry
我认为你不需要额外的属性(aria-valuenow),你可以检查值 输入事件,你可以add/remove class:
演示:
(function() {
$('#plyr-volume-2587').on('input',function(){
if(this.value == '0')
$('.js-volume').addClass('test')
else
$('.js-volume').removeClass('test')
});
$('#plyr-volume-2587').trigger('input');
})();
.test{
color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="plyr__control js-volume" data-plyr="mute">My Button</div>
<input data-plyr="volume" type="range" min="0" max="1" step="0.05" value="1"
autocomplete="off" role="slider" aria-label="Volume" aria-valuemin="0"
aria-valuemax="100" id="plyr-volume-2587" style="" aria-valuetext="0.0%" class="plyr__tab-focus">
我之前问了一个关于如何“
它仅适用于 aria-valuenow
中加载的内容。例如,如果加载了 aria-valuenow=50
,则代码将不起作用,但如果加载了 area-valuenow=0
,则它可以工作。
那么如何根据以编程方式更改值的输入将 class 添加到 div?
代码:
<div class="plyr__control js-volume" data-plyr="mute">My Button</div>
<input data-plyr="volume" type="range" min="0" max="1" step="0.05" value="1"
autocomplete="off" role="slider" aria-label="Volume" aria-valuemin="0"
aria-valuemax="100" aria-valuenow="*programmatically changes*" id="plyr-volume-2587" style="--value:0%;
width: 0px; left: 200px;" aria-valuetext="0.0%" class="plyr__tab-focus">
JS代码:
$(function() {
var val = $('.plyr__volume input').attr('aria-valuenow');
if(val == "0") $('.js-volume').addClass('test');
})();
输入值变化的工作示例 - https://codepen.io/openbayou/pen/JQeEry
我认为你不需要额外的属性(aria-valuenow),你可以检查值 输入事件,你可以add/remove class:
演示:
(function() {
$('#plyr-volume-2587').on('input',function(){
if(this.value == '0')
$('.js-volume').addClass('test')
else
$('.js-volume').removeClass('test')
});
$('#plyr-volume-2587').trigger('input');
})();
.test{
color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="plyr__control js-volume" data-plyr="mute">My Button</div>
<input data-plyr="volume" type="range" min="0" max="1" step="0.05" value="1"
autocomplete="off" role="slider" aria-label="Volume" aria-valuemin="0"
aria-valuemax="100" id="plyr-volume-2587" style="" aria-valuetext="0.0%" class="plyr__tab-focus">