jQuery调用插件方法从内部回调函数
jQuery call plugin method from inside callback function
我正在使用一个样板插件设计,看起来像这样,
;(function ( $, window, document, undefined ) {
var pluginName = "test",
defaults = {};
function test( element, options ) {
this.init();
}
test.prototype = {
init: function() {}
}
$.fn.test = function(opt) {
// slice arguments to leave only arguments after function name
var args = Array.prototype.slice.call(arguments, 1);
return this.each(function() {
var item = $(this), instance = item.data('test');
if(!instance) {
// create plugin instance and save it in data
item.data('test', new test(this, opt));
} else {
// if instance already created call method
if(typeof opt === 'string') {
instance[opt].apply(instance, args);
}
}
});
};
})( jQuery, window, document );
现在假设我有两个具有相同类别container
的<div>
。
现在我将在这些div上调用我的test
插件,像这样,
$(".container").test({
onSomething: function(){
}
});
现在,当函数onSomething
从我的插件内部调用,我怎么能调用插件公共方法参考实例onSomething
函数被调用?
例如,first container
div和onSomething
函数只对first container
div调用。
为了更清楚一点,我试图将this
实例传递给onSomething
函数,这样我就可以暴露所有插件数据,然后我可以做一些类似的事情,
onSomething(instance){
instance.someMethod();
instance.init();
//or anything i want
}
对我来说,这看起来很不对,所以一定有更好的方法…或不呢?
我不确定这是不是最好的主意,但是你可以将当前对象作为参数传递。我们输入onSomething : function(obj) { }
So whenever "onSomething" is called by the plugin, you can call it like this: "onSomething(this)" and then refer to the object as
object让我们举一个具体的例子。
var plugin = function (opts) {
this.onSomething = opts.onSomething;
this.staticProperty = 'HELLO WORLD';
this.init = function() {
//Whatever and lets pretend you want your callback right here.
this.onSomething(this);
}
}
var test = new Plugin({onSomething: function(object) { alert(object.staticProperty) });
test.init(); // Alerts HELLO WORLD
希望有帮助,如果不够清楚请告诉我。
哦,等等,这就是你做的。
相关文章:
- 为什么(如何)'这'从函数内部调用回调时发生更改
- 正在保存JavaScript内部回调函数中的值
- 在另一个Find(..)的回调内部查找,如何逃离回调地狱
- 从回调内部填充对象
- javascript,将参数传递给函数内部的闭包中的回调
- 从内部回调的可见性
- Javascript破坏了回调函数内部的for循环
- Angular promise回调不是在构造函数方法内部触发,而是在对象文本方法中触发
- NodeJS fs.readdr-将回调内部作为对象返回
- 可以't从回调函数内部访问响应
- Meteor.methods:从内部回调将数据返回给客户端
- jQuery widget 和内部回调
- 保留“;这个“;内部回调函数
- 正在从内部回调中分配变量
- AJAX内部回调成功
- 如何将内部回调的结果传递到其父函数
- node/redis中的JavaScript控制流:从内部回调返回
- 这个内部回调函数
- jQuery调用插件方法从内部回调函数
- 最简单的是什么?从javascript内部回调中访问外部this的最短方式