我正在试图弄清楚如何修复jQueryUI 1.8.5和jQuery 1.5.1的this代码,并且我对这些高级内容感到不幸,有人可以帮忙吗?
问题在于以下代码:
$.extend($.ui.boxer, {
defaults: $.extend({}, $.ui.mouse.defaults, {
appendTo: 'body',
distance: 0
})
});
由于某种原因,它不会使用appendTo和距离值初始化选项。
答案 0 :(得分:2)
虽然我之前没有使用过jQuery UI,但是当晚我对这个进行了尝试。您在jsfiddle中显示的代码似乎有两个问题。第一个是在UI 1.8中,您不再需要在创建窗口小部件时进行扩展,
$.widget("ui.boxer", $.ui.mouse, {
...
});
切换到声明小部件的这种新方式,this._mouseInit()
的错误消失了。在我们解决您的问题之前,我们需要这样做,这就是为什么默认设置不起作用的原因。在此提交https://github.com/jquery/jquery-ui/commit/90fb45dffafc2e891b1ebca948ad33e6b94de112中,ui.mouse.defaults
已替换为options
。由于options
是小部件的一部分,因此您现在必须扩展原型
$.extend($.ui.boxer.prototype, {
options: $.extend({}, $.ui.mouse.prototype.options, {
appendTo: 'body',
distance: 0
})
});
这些更改产生了一些有用的功能(http://jsfiddle.net/wqvJG/1/)。顺便说一句,这段代码的作用很棒:)。
答案 1 :(得分:0)
那部分似乎正在工作(我调试它并确保appendTo正如预期的那样说。)有关于tmp变量被使用两次的警告所以我修复了它。随着这一变化,演示似乎正如我认为应该的那样工作。它有什么问题: