jQuery UI Slider为每个值更改类
jQuery UI Slider change class for each value
我有一个jQuery UI Slider,它的范围在1-100之间。我想为1-100之间的每个值更改div的类。
我知道有一种更有效的JavaScript方法可以切换类并遍历值。除了else-if语句,还有更好的方法吗?
任何提高效率的技巧都值得赞赏。
$( '#slider-container' ).slider({
min: 1,
max: 100,
slide: function( event, ui ) {
if ((ui.value == 2)) {
$( ".number_100" ).toggleClass( 'number_102' );
} else if ((ui.value == 3)) {
$( ".number_100" ).toggleClass( 'number_103' );
}
}
});
或者(但不确定如何找到/删除最后添加的类?)
<div class="position_100 number_101"></div>
$( '.position_100' ).removeClass().addClass((ui.value<10) ? 'number_10'+ui.value : 'number_1'+ui.value);
这似乎有点冗长,但在检查了另一个答案后,似乎toggleClass
不够;这仅仅是因为对于每个slide
,我们可能会添加一个类,从而在项目上产生多个"数字类",即类属性值为:number_101 number_102 number_103
。相反,我假设你只是在追求最近的ui.value
变化?
如果是这样的话,可以使用jQuery中的data
方法来实现,只需记住最近添加的类是什么,如下所示:
slide: function(event, ui) {
if (div.data('lastClass')) {
div.removeClass(div.data('lastClass'));
}
var newClass = ui.value < 10 ? 'number_10' + ui.value : 'number_1' + ui.value;
div.data('lastClass', newClass).addClass(newClass);
}
我知道这可能看起来有点冗长,但这确实意味着我们在滑动后只有一个"数字类"。
jsFiddle
试试这个:
slide: function( event, ui ) {
if (ui.value < 10) {
$( ".number_100" ).toggleClass( 'number_10'+ui.value );
} else {
$( ".number_100" ).toggleClass( 'number_1'+ui.value );
}
}
或:
slide: function( event, ui ) {
$(".number_100").toggleClass((ui.value<10) ? 'number_10'+ui.value : 'number_1'+ui.value);
}
不会:
slide: function( event, ui ) {
$( ".number_100" ).toggleClass( 'number_10'+ui.value );
}
更高效?这假设您的类名与滑块值相对应,因此值10等于类名"number_1010"。
快速jsFiddle示例使用三个类。
相关文章:
- jQuery UI Slider ui.value 获取最后一个数字
- jQuery UI Slider 每个值切换类
- jQuery UI Slider为每个值更改类
- 如何在Windows曲面上使用Jquery UI Slider
- Angular2 with Jquery-ui Slider
- jQuery UI-slider changing "max" value
- jQuery UI Slider(从文本输入设置)
- 如何使用类型范围输入的值来设置jQuery UI Slider的值
- 使jQuery UI Slider可单击而不可拖动
- jQuery No Ui Slider,如何锁定多个互连的滑块以始终求和100
- jQuery UI Slider-从'幻灯片'发布时的事件与'更改'价值
- 如何将模型值绑定到kendo.ui.Slider
- 基于'的值更改变量;jQuery UI Slider'
- Jquery ui slider tabs不能设置undefined属性
- JQuery UI Slider Uncaught TypeError: Cannot read property
- 从jQuery ui slider中获取slider值并将其存储到一个变量中
- Angular ui-slider -动态最小/最大值
- jQuery UI Slider:从与幻灯片事件关联的函数中访问选项
- jQuery UI slider '事件即使在值未更改时也会触发
- JQuery UI slider '函数不设置angularJS的值