【问题标题】:How to take a value from one jQuery function and assign it to a parameter of another function?如何从一个 jQuery 函数中获取一个值并将其分配给另一个函数的参数?
【发布时间】:2013-05-13 05:57:52
【问题描述】:

我有一个带有 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);
},

虽然我做不到。

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

【问题讨论】:

  • 抱歉我的无知,galleryWithSlideshow 是什么?是插件还是什么的?

标签: javascript jquery function parameters arguments


【解决方案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);
},

【讨论】:

    【解决方案2】:

    将参数放入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"));
    },
    

    【讨论】:

      猜你喜欢
      • 2021-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-08
      • 2012-08-02
      • 1970-01-01
      相关资源
      最近更新 更多