javascript - jQueryUI .extend 的困境

标签 javascript jquery jquery-ui

我正在尝试解决如何修复 this我正在编写 jQueryUI 1.8.5 和 jQuery 1.5.1 的代码,但我对如此高级的东西不走运,有人可以帮忙吗?

问题出在下面的代码上:

$.extend($.ui.boxer, {
    defaults: $.extend({}, $.ui.mouse.defaults, {
        appendTo: 'body',
        distance: 0
    })
});

由于某种原因,它不会使用appendTo和距离值初始化选项。

最佳答案

虽然我以前没有使用过 jQuery UI,但我今晚还是尝试了一下这个。看来您在 jsfiddle 中显示的代码有两个问题。首先是在 UI 1.8 中,创建 widget 时不再需要进行扩展,

$.widget("ui.boxer", $.ui.mouse, {
    ...
});

切换到这种声明小部件的新样式后,this._mouseInit() 的错误就会消失。在我们解决您的问题之前需要完成此操作,这就是默认值不起作用的原因。在此提交中https://github.com/jquery/jquery-ui/commit/90fb45dffafc2e891b1ebca948ad33e6b94de112 , ui.mouse.defaults 已替换为 options。由于 options 是小部件的一部分,因此您现在必须扩展原型(prototype),

$.extend($.ui.boxer.prototype, {
    options: $.extend({}, $.ui.mouse.prototype.options, {
        appendTo: 'body',
        distance: 0
    })
});

这些更改产生了一些有效的结果 ( http://jsfiddle.net/wqvJG/1/ )。顺便说一句,这段代码的作用非常棒:)。

关于javascript - jQueryUI .extend 的困境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7026114/

相关文章:

javascript - 为什么 Chrome 会保留上一页的 scrollTop

jquery - 为什么这个简单的 jQuery 传输效果不起作用?

javascript - 在javascript中保存拖放位置

php - JavaScript/PHP 数组

javascript - C3 图表中的特定 JSON 值限制

javascript - jQuery - 延迟连续遍历

javascript - 在 append() 中将 Javascript 变量传递给 HTML 代码

jquery - 将 jquery ui 图标添加到提交按钮

javascript - Bootstrap 日期和时间选择器,默认日期设置为单击日历按钮上的输入字段

Javascript 最佳实践 : handling Firebug-specific code