[英]How to return $(this)
我使用jQuery,并为一些内部工作制作了一个插件,该插件基本上为我们的内部API建立了URL。 无论如何,我想返回$(this),而我没有得到正确的东西,并且我得到了createdocumentfragment错误?
插件代码:
$.get(base_url,{
agenda_id:defaults.id,
action:defaults.action+defaults.type,
output:defaults.output
},function(html){
defaults.callback(html);
});
那很好,但是我想像这样添加return obj:
$.get(base_url,{
agenda_id:defaults.id,
action:defaults.action+defaults.type,
output:defaults.output
},function(html){
defaults.callback(html);
return obj;
});
Obj是在我的插件开始时设置的,而obj在整个插件中都能正常工作。 设置为obj=$(this);
在使用插件的脚本中,我有:
$('#agenda-live-preview').agenda({action:'get',type:'agenda',id:window.location.href.split('/').pop(),callback:function(html){
$(this).empty().append($(html).html());
}});
但是,它不起作用并返回:
Error: doc.createDocumentFragment is not a function
Source File: http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js
Line: 4373
在控制台错误日志中。 任何想法如何返回$(this)并运行回调?
我(最后)对您的其他问题发表了评论。 :o)我很确定您需要在插件中执行此操作:
defaults.callback.call(this,html);
代替:
defaults.callback(html);
听起来您想将对象返回给原始调用者。
agenda = function(opts, callback) {
$.get(base_url,{
agenda_id:defaults.id,
action:defaults.action+defaults.type,
output:defaults.output
},function(html){
defaults.callback(html);
});
return obj;
}
我想这个想法是启用链接,以便您可以说类似
$('#id').agenda(opts).show();
管他呢。 当然,这将在$ .get 发出后立即执行,而不是在完成之后执行,但这是正常现象,可能是您想要的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.