JavaScript回调功能失败

时间:2011-06-14 13:32:39

标签: javascript function html5 callback slider

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

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

5 个答案:

答案 0 :(得分:2)

回调应指向一个函数,如下面的代码

callbacks:{"move":[doAlert]}

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

答案 1 :(得分:2)

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 :(得分:1)

试试这个?

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

答案 3 :(得分:0)

代码必须

callbacks:{"move":[doAlert]}

答案 4 :(得分:0)

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

callbacks:{change:[doalert]}

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

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

您的提醒会说出滑块的值。

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