我正在尝试创建一个jQuery插件。
$.fn.examplePlugin = function(callback) {
$.item = $(this);
$(this).hide('fast',function () {
callback('bla');
});
function show(a) {
alert(a);
}
}
并使用
$('form').examplePlugin(function(data)) {
this.show(data); // need to return alert 'bla'
});
需要返回警告'bla'
答案 0 :(得分:0)
编辑完成后,您的代码几乎就可以完成您的工作。只有几个问题:
这条线的目的是什么?
$.item = $(this);
您正在引用元素的jQuery对象(别名$
)中创建一个字段。如果您将插件调用N次,该字段将被覆盖N次。无论你想要完成什么,这都不是这样做的方式。
您的函数show
仅在封闭function(callback) { ... }
内可用,您无法从外部访问它。调用this.show
将不执行任何操作,您不应尝试将成员添加到this
,因为它引用了DOM元素。
对于“正确”的方式,我建议阅读有关插件创作的一些教程,但作为一种快速解决方法,为什么不将show
函数作为参数传递给回调呢?
$(this).hide('fast',function () {
callback(show, 'bla');
});
...
$('form').examplePlugin(function(show, data) {
show(data); // will perform (not return) "alert('bla')"
});