我打算使用JQuery UI创建几个小部件,并以多态方式使用它们。

因此,假设我有两个名为widget_1和widget_2的小部件,它们都定义了一个称为testMethod()的“公共”方法。我想盲目地拿任何一个对象并调用testMethod。就像是:

widget.testMethod()


但是,JQuery似乎要求我知道我拥有哪个对象,因为调用方法的语法使用以下形式:

$("#widget_1").widget_1("testMethod");




$("#widget_2").widget_2("testMethod");


我还必须能够使用多态使用小部件的其他选项吗?

谢谢。

最佳答案

不建议这样做,但是您可以这样实现:

$.fn.testMethod = function(param1, param2){
   var id = this.attr("id");  //'this' references the selected element(s)
   return this;
};


然后,您可以执行以下操作:

$("#widget_1").testMethod('foo', 'bar');


但是您会污染$“命名空间”

关于jquery - jQuery UI-多态使用小部件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2782315/

10-12 07:00