jquery - jQuery 插件的动态选项对象(示例)

标签 jquery object plugins jquery-plugins

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

我的意思是,我需要能够传入:

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

还有

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

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

最佳答案

使用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
  });
};

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

关于jquery - jQuery 插件的动态选项对象(示例),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1898867/

相关文章:

javascript - 如何关闭所有其他子菜单?

jquery - JQGrid : inline editing in client side

javascript - 使用javascript创建多个对象的二维数组,其中对象具有相同的属性

c# - 将 PictureBox 对象传递给类中的方法

gradle - 在以下任何来源中均未找到插件[id: 'org.sonarqube',版本: '2.8']:

eclipse - 在哪里可以找到eclEmma依赖项?

jquery - Accordion 图标不出现

javascript - 如何在 JS/Jquery 中组合几个 hover 元素

javascript - 如何使用lodash向数组中的所有对象添加键值对

javascript - 在国家代码下拉列表中添加所需的验证 [国际电话输入 jquery 插件]