猿问

如何使用方法创建jQuery插件?

如何使用方法创建jQuery插件?

我正在尝试编写一个jQuery插件,它将为调用它的对象提供额外的函数/方法。我在线阅读的所有教程(过去2小时内一直在浏览)包括最多如何添加选项,但不包括其他功能。

这是我要做的事情:

//通过调用该div的插件将div格式化为消息容器

$("#mydiv").messagePlugin();$("#mydiv").messagePlugin().saySomething("hello");

或类似的规定。以下是它归结为:我调用插件,然后调用与该插件相关联的函数。我似乎找不到办法做到这一点,我见过许多插件之前做过。

这是我到目前为止的插件:

jQuery.fn.messagePlugin = function() {
  return this.each(function(){
    alert(this);
  });

  //i tried to do this, but it does not seem to work
  jQuery.fn.messagePlugin.saySomething = function(message){
    $(this).html(message);
  }};

我怎样才能实现这样的目标?

谢谢!


慕侠2389804
浏览 509回答 3
3回答

MYYA

这种方法怎么样:jQuery.fn.messagePlugin = function(){     var selectedObjects = this;     return {              saySomething : function(message){                               $(selectedObjects).each(function(){                                 $(this).html(message);                               });                               return selectedObjects; // Preserve the jQuery chainability                              },              anotherAction : function(){                                //...                                return selectedObjects;                              }            };}// Usage:$('p').messagePlugin().saySomething('I am a Paragraph').css('color', 'red');所选对象存储在messagePlugin闭包中,该函数返回一个包含与插件关联的函数的对象,在每个函数中,您可以对当前选定的对象执行所需的操作。您可以在此处测试和播放代码。编辑:更新代码以保持jQuery可链接性的强大功能。
随时随地看视频慕课网APP
我要回答