【问题标题】:JavaScript callback functionality failureJavaScript 回调功能失败
【发布时间】:2011-06-14 13:32:38
【问题描述】:

我正在尝试实现我发现here 的滑块功能。但是,我似乎无法让callback 功能正常工作。我试图让它工作的页面非常简单,因为我只是想让它在滑块值更改时调用一个函数:http://dev.itap.purdue.edu/dev/sandbox/jfish/slider.html

我假设我犯了一些简单的 javascript 错误,但没有太多文档,我有点卡在这一点上。任何帮助将不胜感激。

【问题讨论】:

    标签: javascript function html callback slider


    【解决方案1】:

    fd-slider.js 函数的第 446 行出现错误,它尝试调用每个回调函数 func.call(inp, cbObj);

    cbObj 变量未定义,因此不会调用回调。我通过更新那几行来解决这个问题,只是为了定义那个 var。

    for(var i = 0, func; func = callbacks[type][i]; i++) {
        var cbObj = null;
        func.call(inp, cbObj);
    };
    

    我在代码中的任何地方都找不到回调对象定义。

    【讨论】:

      【解决方案2】:

      回调应该指向一个函数,就像下面的代码

      callbacks:{"move":[doAlert]}
      

      但是,当您在doAlert 的末尾使用() 时,您指向的是函数的结果。这就是为什么它在您加载页面时显示警报

      【讨论】:

      • 我已经做出了您在此处建议的更改,dev.itap.purdue.edu/dev/sandbox/jfish/slider2.html。但是,它似乎仍然没有调用该函数。我也尝试将回调从“移动”更改为“更新”和“更改”,但没有成功。
      • 我认为您不应该删除 [],因为文档说回调应该是具有回调类型和 Array 函数的散列。
      • 我再次检查了文档,滑块源有点...文档说moveCalled whenever the drag handle moves position during an animation... 尝试使用“finalise”而不是“move”作为回调键跨度>
      • 您是否还原了那里的代码?我刷新了页面,doAlert() 又出现了……
      【解决方案3】:

      试试这个?

      callbacks:{"move":function(){ doAlert(); }}
      

      【讨论】:

      【解决方案4】:

      代码必须是

      callbacks:{"move":[doAlert]}
      

      【讨论】:

      【解决方案5】:

      我遇到了同样的问题。这应该可以解决您的问题:

      callbacks:{change:[doalert]}
      

      知道这个库会自动传递值,所以如果你编写 doalert 函数,比如

      function(fdevent){alert(fdevent.value)}
      

      您的警报会显示您的滑块所在的值。

      读取回调函数http://www.frequency-decoder.com/2010/11/18/unobtrusive-slider-control-html5-input-range-polyfill/

      【讨论】:

        猜你喜欢
        • 2023-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-30
        • 2021-01-18
        • 2019-06-15
        • 1970-01-01
        相关资源
        最近更新 更多