2013-05-13 187 views
0

我有一个jQuery滑块功能。它设置了延迟时间并将其显示在“#slider”div中:如何从一个jQuery函数获取值并将其分配给另一个函数的参数?

$(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); 
}, 

虽然我不能使它工作。

任何想法? 我将不胜感激您的帮助。

+0

对不起,我的无知,但什么是'galleryWithSlideshow'?它来自插件还是其他内容? – gkalpak 2013-05-13 06:18:28

回答

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); 
}, 
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")); 
}, 
相关问题