【问题标题】:Get current value on sliderstop and set cookie获取sliderstop上的当前值并设置cookie
【发布时间】:2014-05-04 15:05:14
【问题描述】:

我正在使用 jQuery UI 滑块来设置 css opactiy,按照 api 文档了解如何获取值,但是当我测试它时,它并没有改变元素的不透明度值。

编辑:现在一切正常(发送值和设置 cookie),如果对任何人有帮助,我已经更新了下面的代码,感谢您的输入!

HTML:

<h5>Header Opacity</h5>

<div id="op-slider-header"></div>
<input id="headerOpVal" type="hidden" />

<script type="text/javascript">
// header opacity 
$(function() {

    if ($.cookie('headOp')==null){
        $.cookie('headOp',0.5);

    }
    $('.row.header .bg').css('opacity', $.cookie('headOp'));

    $( "#op-slider-header" ).slider({
        max: 1,
        min: 0,
        value: $.cookie('headOp'),
        step:0.1,
        slide: function(e,ui) {

          $.cookie('headOp',ui.value);
         $('#headerOpVal').html(ui.value);
        }
    });


    $( "#op-slider-header" ).on( "slidestop", function( event, ui ) {
        var val = $('#headerOpVal').html(ui.value);
        $('.row.header .bg').css('opacity', ui.value);
        $.cookie("headOp", ui.value, { expires: 7});
    });
});
</script>

【问题讨论】:

  • 当前的实现是否有任何控制台错误?
  • 否,但是当我更改滑块时元素会突出显示,因此代码必须处理到该点。

标签: javascript jquery jquery-ui cookies jquery-ui-slider


【解决方案1】:

我认为您可能必须确保将不透明度设置为整数。试试这个:

var val = parseFloat(ui.value, 10);

您的 slidestop 事件侦听器中的 ui 变量不应该包含幻灯片值吗?

【讨论】:

  • 啊,是的,抱歉,应该是 parseFloat,因为不透明度会以十进制而不是整数形式返回。
【解决方案2】:

我会使用$('#headerOpVal').attr("value", ui.value); 来存储值而不是 html。

并使用$('#headerOpVal').attr("value"); 来检索该值。

但很难说这是问题所在,也尝试发布 html。

【讨论】:

  • 这也不起作用,我不确定它是否获得了价值?或者至少它没有更新 css 内联
  • 尝试使用以下代码在 'on( "slidestop" , ...)' 函数中记录 ui.value:console.log(ui.value)
  • 设置不透明度时使用ui.value 而不是val $('.row.header').css('opacity', ui.value);
  • 完美!现在正在工作谢谢! - 只需要对 cookie 进行排序,因为它没有保存:/
猜你喜欢
  • 2011-01-05
  • 1970-01-01
  • 1970-01-01
  • 2021-05-22
  • 1970-01-01
  • 2019-05-16
  • 1970-01-01
  • 1970-01-01
  • 2014-04-21
相关资源
最近更新 更多