Как вернуть $ (это) - PullRequest
       18

Как вернуть $ (это)

1 голос
/ 15 июня 2010

Я использую jQuery и создал плагин для некоторых домашних работ, который в основном строит URL для нашего внутреннего API.В любом случае, я хочу вернуть $ (это), и я не получаю нужную вещь, и я получаю ошибку createocumentfragment?

Код плагина:

$.get(base_url,{
    agenda_id:defaults.id,
    action:defaults.action+defaults.type,
    output:defaults.output
},function(html){
    defaults.callback(html);
});

Это отлично работает, но я хочудобавить возврат 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

В журнале ошибок консоли.Любые идеи, как вернуть $ (это) И запустить обратный вызов?

Ответы [ 2 ]

1 голос
/ 15 июня 2010

Я (наконец) оставил комментарий в вашем другом вопросе.: o) Я уверен, что вам нужно сделать это в вашем плагине:

defaults.callback.call(this,html);

вместо:

defaults.callback(html);
0 голосов
/ 15 июня 2010

Звучит так, как будто вы хотите вернуть объект исходному вызывающему объекту.

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 будет выдан , а не после его завершения, но это нормально и, вероятно, то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...