繁体   English   中英

如何返回$(this)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM