现在的位置: 首页 > 综合 > 正文

javascriptMVC入门 — 6.jQueryMX -> $.Controller:生成插件

2012年09月28日 ⁄ 综合 ⁄ 共 1453字 ⁄ 字号 评论关闭

  当你创建一个Controller的同时也生成了一个jquery插件,他可以完成以下功能:1.在一个或者一些html元素上生成Controller;2.调用构造函数;3.更新Controller。

  来看下面Controller的例子:

$.Controller("My.Widget",{
  say : function(){
     alert(this.options.message);
  }
})

  创建了一个名叫jQuery.fn.my_widget的插件,你可以这样使用它:

// 创建 my_widget 在每一个 .thing
$(".thing").my_widget({message : "Hello"}) 

// 弹出 "Hello"
$(".thing").my_widget("say");

// 更新 message 信息
$(".thing").my_widget({message : "World"});

// 弹出"World"
$(".thing").my_widget("say");

 

  创建Controller

  当在jquery选择器上使用Controller的时候,他会遍历每一个相关的html元素,看他们是否存在Controller的实例,没有的话才会去创建。他会在你的元素上调用new YourController(),并把参数传给Controller。例如我们有两个.thing元素,

$(".thing").my_widget({message : "Hello"})

这段代码和下面的代码等效:

var things = $('.thing'),
    options = {message : "Hello"};
new My.Widget(things[0],options);
new My.Widget(things[1],options);

  当一个Controller创建的时候,他会调用prototype中的setup和init方法的。

 

  调用Controller上的方法

  当在一个html元素上创建了Controller之后就可以调用它上面的方法了,第一个参数是方法名,之后的是方法所需参数,如下例:

$.Controller("Adder",{
  sum : function(first, second, third){
     this.element.text(first+second+third);
  }
})

// 在页面上添加了一个 adder
$("#myadder").adder()

// 显示 1+2+3 的结果
$("#myadder").adder("sum",1,2,3);

 

  命名

  默认情况下,插件的名字就是Controller的名字,但是会做下面一些修改:

1.使用jQuery.String.underscore()方法处理名称字符串,例如:

jQuery.String.underscore("OneTwo") //-> "one_two"

2.使用'_'代替'.'。

3.移除'Controllers'。

$.Controller("Foo")                 // -> .foo()
$.Controller("Foo.Bar")             // -> .foo_bar()
$.Controller("Foo.Controllers.Bar") // -> .foo_bar()

  你还可以通过设置静态pluginName属性来改变Controller默认的名字。

$.Controller("My.Tabs",
{
  pluginName: "tabs"
},
{ ... })

$("#tabs").tabs()
【上篇】
【下篇】

抱歉!评论已关闭.