使用 jQuery widget 工厂,创建包含 ui.sortable 的树视图
using jQuery widget factory, creating treeview including ui.sortable
我正在尝试使用jQuery小部件工厂创建一个插件。我正在创建一个简单的树视图插件,我想在其中实现 ui.sortable 小部件,为此我做了这样的事情:
(function ($) {
$.widget("cms.treeview", $.ui.sortable, {
// Default options.
options: {
useSorting: false
},
// Default constructor.
_create: function(){
// creating treeview code goes here
// if useSorting is set to true set sorting
if (this.options.useSorting){
// HOW WOULD I CALL THE SORTING HERE
}
U
});
})(jQuery)
现在,当我将 ui.sortable 添加到 $.widget("cms.treeview", $.ui.sortable, { }); 声明 我从可排序小部件中获取所有选项,但是我将如何在代码中调用它并确保拥有我需要的所有内容?
/马丁
(function ($) {
$.widget("cms.treeview", $.ui.sortable, {
// Default options.
options: {
useSorting: false,
makeMeSortable:$.noop
},
elementToMakeSortable:null,
// Default constructor.
_create: function(){
// creating treeview code goes here
this.elementToMakeSortable = $(document.createElement('ULorWhateverElement'));
// if useSorting is set to true set sorting
if (this.options.useSorting){
// HOW WOULD I CALL THE SORTING HERE
this._trigger('makeMeSortable', null, { elementToBeSortable:this.elementToMakeSortable});
}
});
})(jQuery)
然后,在您的页面上,您有如下所示的内容:
var yourTreeviewWidgetInstance = $('#someElement').treeview({
useSorting:true,
//this gets called from treeview widget if userSorting=true
makeMeSortable: function (event, elementToMakeSortable) {
$(elementToMakeSortable).sortable();
}
附言。我还没有测试代码,我是从我的脑海中编写的。只是让你了解设计。
作为一般原则,让小部件相互了解听起来并不好。通常,这就是"选项即函数"的用途。例如,在这里您可以看到 2 个小部件在通信:http://msdn.microsoft.com/en-us/library/hh404085.aspx
因此,在您的示例中,您要做的是设置一个名为"makeMeSortable"的选项,例如:
// Default options.
options: {
useSorting: false,
makeMeSortable:$.noop
}
然后你会做这样的事情:
if (this.options.useSorting){
// HOW WOULD I CALL THE SORTING HERE
this._trigger('makeMeSortable', null, { elementToBeSortable: this.yourElementToSort})
}
最后,在创建小部件的实例时,您将为makeMeSortable选项分配一个函数。 该函数将接收要排序的元素并调用ui.sortable widget。
相关文章:
- 在JQuery UI Accordion Sortable中使用touchpunch无法正确使用touch
- 如何覆盖jQuery-ui-sortable的拖动事件
- jquery-ui-sortable在创建时修改html
- jquery-ui sortable:如何在拖动时不添加单元格
- 将 Jquery UI Sortable 转换为表而不是 ul
- 无法使 jQuery UI Sortable 正常工作
- JQuery UI .sortable('toArray') 返回 HTMLUListElement 而
- jQuery UI Sortable的工作方式很奇怪
- jQuery-UI:sortable() 占位符感觉很粘
- 在 jQuery UI Sortable 之后更新 CollectionView 内容的最佳方式
- 将 jQuery UI Sortable 的顺序保存到 Backbone.js Collection
- 使用 jQuery widget 工厂,创建包含 ui.sortable 的树视图
- 使用angular ui sortable和angular fire可以在排序时将新订单保存到数据库中
- angularjs-ui-sortable:初始化之前不能调用sortable上的方法;尝试调用方法'刷新
- Inputosaurus Text + jQuery UI Sortable
- JQuery ,each() with UI.sortable()
- ui-sortable不工作(对于预定义的DOM位置)
- 为jquery-ui-sortable拖动事件
- jQuery-ui sortable -在禁用后再次启用可排序功能
- 在ember.js中使用jquery-ui sortable时,更新ArrayController模型中的属性