3

有人知道任何可以与动态选项对象一起使用的 jQuery 插件吗?

我的意思是,我需要能够通过:

$('div').somePlugin({title : 'title1', label : function(element){}, etc.});

并且

$('div').somePlugin({name : 'name1', url : function(element){},
                     event : 'event1', etc.});

因此,选项对象需要能够拥有可变数量的项目、键名和值,这些值可以是静态的,也可以是函数的。如果它是一个函数,我需要能够在从插件传回值之前评估该函数。

我意识到如果没有进一步的细节,你们很难真正提供帮助,这就是为什么我想我应该看看我是否可以从任何可能已经有类似这样的东西的例子中学习。

谢谢。

4

2 回答 2

1

使用typeof运算符:

jQuery.fn.somePlugin = function(p) {
  if (typeof p == "function") {
    var params = p();
  } else if (typeof p == "object") {
    var params = p;
  } 
  return this.each(function(){
    // use params
  });
};

如果您传入一个对象,它可以具有可变属性(名称和编号),并且这些属性的值可以很容易地是函数、对象、简单值或其他任何东西。

于 2009-12-14T04:15:30.707 回答
0

我想到了两个使用类似模式的插件。

  1. 我帮助编写了这个,并构建了回调navigationFormatter选项:AnythingSlider。有关该选项如何工作的说明位于源文件navigationFormatter的顶部。

  2. 第二个是jQuery 自动完成formatItemformatMatchformatReturn使用类似的模式。

于 2009-12-14T04:16:24.613 回答