Slider Widget moveTo,改为值但是给了NaN

时间:2015-09-29 20:42:44

标签: jquery jquery-ui jquery-plugins uislider jquery-ui-slider

我遇到了以下问题

我的滑块不再好用而且会出错。这是因为jquery和其他东西的更新。

我的网站上有滑块(抱歉没有图片)。它有滑块和下一个prev按钮。 当我点击滑块或按钮时,前面会出现一张漂亮的幻灯片。

这将以旧方式使用以下代码完成:

initPL_slider = function() {
    var steps = Math.ceil(parseInt(pl.total)/parseInt(view[pl.view][0]))-1;
    var contentwidth = (parseInt($("#pl_content").innerWidth())+100);

$("#pl_slider").slider({
        min: 0,
        max: (steps*parseInt(view[pl.view][0])),
        handle: ".pl_handle",
        step: parseInt(view[pl.view][0]),
        change: function(event, ui){
            var dir = "";

            if(ui.value > pl.limitstart) dir = "-";
            pl.limitstart = ui.value;
            $("#pl_content").animate({ 
                left: dir+contentwidth+"px",
                opacity: 0
              }, 250, 'linear', function(){
                  $("#pl_content").css({left:"0px", opacity:1});
                  retrieveContent(false);
              }
            );
        }
    });

    if(steps < 1){
        $("#pl_slider").slider("option", "disabled", true );
    }    
}

setPLmenuData = function(){
    var steps = Math.ceil(parseInt(pl.total)/parseInt(view[pl.view][0]))-1;


    $("#pl_prev").click(function(){
        if(pl.limitstart > 0){
            $("#pl_slider").slider("moveTo", "-="+view[pl.view][0]);
        }
    });


    $("#pl_next").click(function(){

        if(steps > 0){              
            if(pl.limitstart < (parseInt(view[pl.view][0])*steps)){
                $("#pl_slider").slider("moveTo", "+="+view[pl.view][0]);
            }
        }
    });

使用:

jQuery 1.2.6 - New Wave Javascript

jQuery UI Slider  版权所有2008 Paul Bakaus

但现在我得到越来越多错误加载XML数据错误并寻找解决方案。所以我首先更新Jquery和Jquery ui 版本:

<script src="//code.jquery.com/jquery-1.11.3.js"></script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script src="http://code.jquery.com/ui/1.11.3/jquery-ui.js"></script>

加载XML数据错误的错误消失了,滑块工作正常。问题是next和prev按钮。当我点击时,我收到NaN错误。似乎缺少Limitstart的计算。我将moveTo更改为value,因为不推荐使用moveTo。

链接....&amp; limitstart = NaN&amp; limit = 25和一些新代码(值)

    $("#pl_prev").click(function(){
        if(pl.limitstart > 0){
            $("#pl_slider").slider("value", "-="+view[pl.view][0]);
        }
    });

    $("#pl_next").click(function(){

        if(steps > 0){              
            if(pl.limitstart < (parseInt(view[pl.view][0])*steps)){
                $("#pl_slider").slider("value", "+="+view[pl.view][0]);
            }
        }
    });

我迷路了。如何在链接中获得正确的限制开始计算?

1 个答案:

答案 0 :(得分:0)

通过更改以下代码解决了问题。

$("#pl_prev").click(function(){
        if(pl.limitstart > 0){
            $("#pl_slider").slider("value", "-="+view[pl.view][0]);
        }
    });

    $("#pl_next").click(function(){

        if(steps > 0){              
            if(pl.limitstart < (parseInt(view[pl.view][0])*steps)){
                $("#pl_slider").slider("value", "+="+view[pl.view][0]);
            }
        }
    });

$("#pl_prev").click(function(){

    if(pl.limitstart > 0){
        var curr = $("#pl_slider").slider("value");
        var thisHandle = view[pl.view][0];
        $("#pl_slider").slider( "value", curr - thisHandle);
    }
});

$("#pl_next").click(function(){
if(steps > 0){  
        if(pl.limitstart < (parseInt(view[pl.view][0])*steps)){

        var curr = $("#pl_slider").slider("value");
        var thisHandle2 = view[pl.view][0];
        $("#pl_slider").slider("value", curr + thisHandle2);
        }
    }
});

滑块值代码未完成。自从jQuery UI 1.7 删除了startValue和moveTo,转而使用值和值选项和方法。