0

我有一个带有 jQ​​uery 滑块的功能。它设置了一个延迟时间并将其显示在“#slider” div 中:

$(function () {
    $("#slider").slider({
        range: 'max',
        min: 1,
        max: 5,
        slide: function(event,ui) {
            $("#delayTime").val(ui.value);
                delayTime = ui.value * 1000;            
        }
    });  
}); 

这本身就可以。

稍后在代码中,我有另一个运行整个幻灯片的函数。该函数有自己的参数,用于确定每张幻灯片之间的延迟时间:

function mySlideshow(){
    var wholeSlideshow =
        $('#thumbHolder').galleryWithSlideshow({
            mainCntrls: true,
            prevNextCntrls: true,

            delayTime: 2000,    


            etc.     

   });

这个本身也很好用。

问题。

我应该在代码中添加什么以将我在滑块函数中获得的值传递给幻灯片函数的 delayTime 参数,以便滑块函数确定幻灯片函数中的延迟时间?

我正在考虑像这样修改滑块功能:

$(function () {
    $("#slider").slider({
        range: 'max',
        min: 1,
        max: 5,
        slide: function(event,ui) {
            $("#delayTime").val(ui.value);
                delayTime = ui.value * 1000;
                return delayTime;           
        }
    });  
});

以及添加到幻灯片函数的 delayTime 参数中,如下所示:

delay: function (event, ui){
        $("#delayTime").val(delayTime);
},

虽然我无法让它工作。

有任何想法吗?非常感谢您的帮助。

4

2 回答 2

1

在你的函数之外声明一个变量 myDelayTime 。它可以在整个代码中访问。

var myDelayTime;

$(function () {
    $("#slider").slider({
        range: 'max',
        min: 1,
        max: 5,
        slide: function(event,ui) {
            $("#delayTime").val(ui.value);
                delayTime = ui.value * 1000;  
                myDelayTime = delayTime;  
        }
    });
});

...

delay: function (event, ui){
        $("#delayTime").val(myDelayTime);
},
于 2013-05-13T06:18:59.417 回答
0

将参数放入 jQuery.data:

 $(function () {
    $("#slider").slider({
        range: 'max',
        min: 1,
        max: 5,
        slide: function(event,ui) {
            $("#delayTime").val(ui.value);
                delayTime = ui.value * 1000;
                $("#slider").data("delayTime",delayTime);       
        }
    });  
});

然后把它放在任何地方:

delay: function (event, ui){
        $("#delayTime").val($("#slider").data("delayTime"));
},
于 2013-05-13T06:38:46.133 回答