我对jQuery扩展有些困惑,不像我期望的那样工作。我已经定义了以下功能:jQuery扩展(作用域?)问题
$.fn.poster = function() {
this.each(function() {
self = $(this);
self.click(function() {
/* does stuff */
$.post(url, data, function(d, t) { handle_storage(d, t, self); }, "json");
});
});
}
handle_storage = function(storages, status, caller) {
container = $("<div>");
$("<span>").poster().html(storage.name).appendTo($("<li>").addClass("folder").appendTo(container));
}
$(function() {
$("li.storage span").poster();
});
到海报()在准备功能的初始调用工作,但handle_storage()回调里面,我得到一个“海报()是未定义”的错误。是什么赋予了?
你可能有'自我= $的问题(这一点);'互联网资源管理器(我得到“未实现的错误”),因为self是窗口对象的属性。然而,使用var关键字('var self = $(this);')是有效的。 – 2009-11-20 22:04:59