如何从一个jQuery函数中获取值并将其分配给另一个函数的参数?

时间:2013-05-13 05:57:52

标签: javascript jquery function parameters arguments

我有一个带有jQuery滑块的函数。它设置延迟时间并在“#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参数,以便滑块功能确定 幻灯片放映功能中的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);
},

虽然我无法使其发挥作用。

有什么想法吗? 我非常感谢你的帮助。

2 个答案:

答案 0 :(得分: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);
},

答案 1 :(得分: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"));
},