jquery.gridster.min.js中resizable函数的delay函数报错求助
解决gridster中"Uncaught TypeError: delay is not a function"错误
这个问题我碰到过,其实根源很简单,咱们一步步来解决:
错误原因:你代码里调用的
delay()并不是一个全局可用的函数。jQuery的delay()方法只能用于jQuery对象的动画队列,不能直接像这样全局调用;而且当前Gridster版本里也没有定义全局的delay辅助函数,所以浏览器会抛出类型错误。修复方案:把
delay替换成原生JavaScript的setTimeout函数,它就是专门用来延迟执行回调的,完全符合这段代码的需求。
修改前后的代码对比:
原错误代码:
stop: $.proxy(function (event, ui) { delay($.proxy(function () { this.on_stop_resize(event, ui); }, this), 120); }, this)
修改后的正确代码:
stop: $.proxy(function (event, ui) { setTimeout($.proxy(function () { this.on_stop_resize(event, ui); }, this), 120); }, this)
- 额外说明:这段代码的核心需求是在停止调整大小后延迟120毫秒执行
on_stop_resize方法,setTimeout完美实现这个逻辑,而且是所有浏览器都支持的原生API,不会有依赖问题。
内容的提问来源于stack exchange,提问作者Fenil Shah
相关产品推荐
相关产品推荐

