问题标签 [jquery-ui-widget-factory]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2651 浏览

javascript - 如何在 jquery-ui 小部件中存储内部属性?

我正在从头开始编写一个新的 jquery-ui 小部件。我找到了官方的“小部件工厂如何工作”文档。( http://jqueryui.com/demos/widget/ )

小部件本身工作正常。现在我想在内部存储一些值 - 有没有首选的方法来做到这一点?
我认为在选项中声明的所有属性都是公共的。

谢谢你的帮助!

0 投票
2 回答
1047 浏览

jquery - jQuery UI Widget Factory 获取当前小部件的上下文

使用 jQuery UI 小部件工厂模式创建小部件后,是否存在对小部件本身的全局引用?

我尝试过设置一个与小部件相等的小部件变量:

我还尝试通过 jQuery 获取小部件的上下文,例如:

我无法弄清楚您应该如何在小部件内部回调小部件。

0 投票
1 回答
1598 浏览

jquery-ui - jQuery-ui:如何从私有函数内部访问选项

我正在学习使用小部件工厂模式编写 jquery-ui 插件。为了更简洁的组织,我在传递给 $.widget. 我想访问这些助手中的选项对象。例如在下面的样板中,我如何访问里面的选项对象_helper()

谢谢你。

0 投票
1 回答
104 浏览

javascript - 如何防止在初始化后更改某些小部件的选项?

我目前正在使用 jQuery UI Widget Factory,不幸的是它的文档很差

这是一个基本的小部件(用于测试的jsfiddle

我知道工厂的私有方法是伪私有的,它们仍然可以直接使用.date()._privateMethod(). 如您所见,我正在利用_setOption()来响应选项更改。

在我的示例中,我不希望max直接向用户公开(这意味着我不希望用户使用.myWidget('option', 'max', value)或更改它,.myWidget({max: value})但同时我想公开min.

所以总结一下:

  • 我希望用户能够使用他们想要的任何选项来初始化(实例化)小部件(它已经实现并且正在工作)。
  • 希望用户能够max在初始化后使用公共 API 进行更改(这意味着如果用户max通过直接使用.data或使用小部件的.prototype.

我怎样才能做到这一点?

0 投票
1 回答
766 浏览

jquery - JavaScript 原型与 jQuery 的 .data() 函数一起使用?

我正在尝试将 JavaScript 原型与 jQuery 的.data()函数一起使用。我的代码如下所示:

这似乎不起作用,我只是想知道为什么?

运行此代码时得到的结果是:

我正在开发一个基于小部件工厂的 jQuery 插件,我想在这个插件中构建一个可管理的状态机 - 我可以存储和访问插件当前状态的中心位置。我想尝试这个的原因之一是我希望能够监控某些值是否发生变化并在它们发生变化时触发其他事情。我需要使用 .data() 函数存储数据,因为它必须绑定到元素。否则,当您在同一页面上获得插件的多个实例时,会发生奇怪的事情。

0 投票
1 回答
3162 浏览

javascript - jQuery-ui 小部件工厂、事件处理程序等

我最近一直在开发一些 jQuery 小部件,但有两件事一直困扰着我,所以我来找你,希望你能有更好的方法来做这件事。

1)我非常喜欢使用“那个”而不是这个的事实。使代码更清晰,避免了很多错误。为了简单起见,我总是使用“that”作为小部件的 this。但是我不知道如何使我的“那个”全球化,所以我要做的是:

如您所见,这在代码中很繁重,而且也好不到哪里去。我想知道我是否可以这样做:

或者这会带来什么问题吗?如果这是不可能的,你认为最好的方法是什么?

2)这确实与我的第一个问题相关,并且对它的回答应该足够了:对于我的事件处理程序,我经常需要使用我的“那个”来调用例如方法。所以我目前做的是

你有没有更好的方法可以做到这一点?我最大的需要是能够将 that._handlers 的整个初始化移出 that._create

这些都是相当开放的问题。我真的想找到一种方法让我的 jquery 小部件真正清晰和可维护,我很想知道人们是怎么做的。

非常感谢您对此的意见。

0 投票
1 回答
311 浏览

javascript - jquery 小部件中的对象仅表现为一个实例

我一直在使用小部件工厂开发一个 jQuery 小部件。

一切都很好,除了我注意到如果我在同一页面上的多个 DOM 元素上实例化小部件,则小部件中的任何对象都将在 DOM 元素之间共享,但选项对象除外。

我认为所有对象和函数在小部件中都有自己的实例。我显然遗漏了一些东西,并希望得到一些指导。

例如:

工作示例:http: //jsfiddle.net/NrKVP/4/

提前致谢!

0 投票
1 回答
1611 浏览

javascript - jQuery Widget Factory _trigger 实例

当使用 _trigger 方法来触发事件时,我遇到了一个我一直在击中但未能正确掌握的障碍。

基本上,如果我的小部件有多个实例,则在同一页面上实例化的最后一个小部件优先于所有其他小部件。

我已经学会并成功地使用 $.extend 来创建实例独有的对象,但我对如何解决以下问题感到困惑:

如何正确使用 _trigger 方法,以便在每个实例的基础上启用它。

示例:http: //jsfiddle.net/NrKVP/13/

0 投票
1 回答
2335 浏览

javascript - 触发器作为 jQuery UI 小部件中的回调

我正在开发我的第一个 jQuery UI 小部件。它使用 $.ajax 来提取数据,然后在加载数据后填充元素。通常我会有一个执行 ajax pull 的函数,并将“onSuccess”回调函数传递给该函数,以便在 ajax pull 成功时执行。

这是我的意思的一个非常简化的版本:

使用小部件工厂,我知道我可以在 $.ajax 的成功函数中添加触发器。我可以在我的小部件代码中使用该触发器吗?

像这样的东西有效,但似乎不是最佳实践:

什么被认为是这里的最佳实践?

0 投票
1 回答
1779 浏览

jquery - setInterval 中公共方法中的 jQuery 小部件工厂访问选项和方法

我创建了一些小部件工厂,我想在公共方法中访问它的选项或方法,但它返回错误“142 Uncaught TypeError: Object has no method”或“无法读取属性”。如何正确访问?

这是示例:

如果我访问 _create 方法中的选项,它工作正常。之前谢谢你。