我是否需要在 JQuery Widget 中每个函数的开头定义“self”、“元素”等
Do I need to define 'self', 'element' etc. at the start of every function within a JQuery Widget
我创建JQuery小部件是这样的
<script type="text/javascript">
(function ($) {
$.widget("cb.bacon", {
_create: function() {
var self = this,
o = self.options,
el = self.element;
// Some code
},
_bacon: function() {
var self = this,
o = self.options,
el = self.element;
// Some code
},
_smokey: function() {
var self = this,
o = self.options,
el = self.element;
// Some code
}
});
})(jQuery);
</script>
我最终总是不得不在我创建的每个函数中声明self
、options
、element
。
缺少一些基本的理解,或者我真的必须一直这样做?
您根本不需要这样做,这只是为了更容易访问函数内部的内容。
当您在 jQuery 函数中使用回调时,self
变量很有用,其中this
将设置为您正在操作的元素。例如:
$('.bacon').each(function(){ $(this).css('background', self.getBackground()); });
变量o
和el
只是减少了键入。如果具有可变self
或引用this
不变,则可以直接从对象访问options
和element
属性。
每次都需要声明这些内容,因为使用的是对象文字。 您可以将对象文字包装为函数调用,并以这种方式实现您想要的。
<script type="text/javascript">
function makeTheBacon() {
var self = this;
var o = self.options;
var el = self.element;
self._create = function() {...};
self._bacon = function() {...};
self._smokey = function() {...};
return self;
}
(function ($) {
$.widget("cb.bacon", makeTheBacon());
})(jQuery);
</script>
还有一个问题也通过在此处的对象文字中使用函数来触及这一点,但考虑到您最初的问题,这似乎过于冗长。
相关文章:
- 用嵌套函数和默认函数定义函数
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 为什么“;未定义的“;在JavaScript中结束循环
- 要求未定义JS回调参数
- 控制台返回var不是't定义,但它是
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- 如何检查管道中未定义的项目
- TypeError:无法读取属性'推'未定义的JavaScript
- jQuery自定义验证比较多个输入的序列
- 查看JS对象的所有键,甚至是getter定义的键
- fetch() 函数未在 Ubuntu Chromium 浏览器上定义
- $window.ga在AngularJS事件中未定义
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 使用jQuery'在数组中循环;s中的每一个都会在生成字符串时在开头产生一个未定义的值
- 我是否需要在 JQuery Widget 中每个函数的开头定义“self”、“元素”等
- 最好在代码的开头还是结尾定义类和函数
- 所有id以自定义文本开头的按钮上的JQuery单击事件
- JQuery属性以"开头选择器定义
- Raphael / SVG路径定义是否总是以'M'开头?(如果不是,这样的路径的原点是否总是0,0?)