2016-12-09 4 views
0

У меня есть AppendКак вызвать функцию внутри добавления?

$("#accordionWiki").append(" 
    <div class='panel panel-default' id='headingWiki_"+i+"'> 
    <div class='panel-body'> FUNCTION </div> 
    </div>" 
); 

и функции, как

function wikiText() { 
    $.getJSON("https://en.wikipedia.org/w/api.php?action=parse&format=json&prop=text&callback=?", {.. 
} 

Я пытался поставить) (вики-текста; внутри append, где я написал ФУНКЦИЯ, но у меня что-то не так, может быть, конкатенация, не уверен.

+0

' "+ вики-текста() +" '? – guradio

+0

@guradio я попробую еще раз, но я уверен, что со всеми моими попытками я сделал это, и это не сработало –

+1

что будет 'wikiText()' делать? можете ли вы показать, что находится в функции, что вы туда вернетесь? – caramba

ответ

0

Вы не можете добавлять результаты своей функции, потому что вы используете AJAX вызов этой функции, которая асинхронно, просто вызовите его после Append:

function(data) { 
       $("#accordionWiki").empty(); 
       $.each(data.query.search, function(i, item) { 
       $("#accordionWiki").append("<div class='panel panel-default'><div class='panel-heading' role='tab' id='headingWiki_"+i+"'><h3 class='panel-title'><a role='button' data-toggle='collapse' data-parent='#accordionWiki' href='#collapseWiki_"+i+"' aria-expanded='true' aria-controls='collapseWiki_"+i+"'>"+ item.title.replace(" ", "_") + "<br><small>" + item.snippet + "</small></a></h3></div><div id='collapseWiki_"+i+"' class='panel-collapse collapse' role='tabpanel' aria-labelledby='headingWiki_"+i+"'><div class='panel-body'></div></div></div></div>"); 
       wikiText('headingWiki_'+i); 
       }); 

изменение функции вики обновить только текущую элемент в цикле:

function wikiText(el) { 
      $el = $('#'+el); 
      $.getJSON("https://en.wikipedia.org/w/api.php?action=parse&format=json&prop=text&callback=?", { 
       page: $(e.relatedTarget).find('h4').text() 
      }, function(data) { 
       var markup = data.parse.text["*"]; 
       var blurb = $('<div></div>').html(markup); 
       blurb.find('a').each(function() { 
        $(this).replaceWith($(this).html()); 
       }); 
       blurb.find(".mw-editsection, #toc, .noprint, .thumb, img, table").remove(); 
       $(el).find(".panel-title").html(articleName); 
       $(el).find(".panel-body").html($(blurb)); 
       $(el).find(".panel-body").promise().done(function(){ 
       $('.panel-body *[style]').attr('style', ''); 
       $(el).find("table").addClass("table table-striped table-hover table-responsive").wrapAll('<div class="table"/>'); 
       $(el).find("table, td, tr, th").removeAttr("style"); 
       $(el).find("img").addClass("img-responsive"); 
       $(el).find(".panel-body").css({opacity: 0.0, visibility: "visible"}).animate({opacity: 1.0}); 
       saveWiki(); 
       $(el).find(".panel-body div *").attr("contenteditable", "true"); 
       }); 
      }); 
      }; 
+0

ok попробуй сейчас –

+0

почему вы положили wikiText ('headingWiki _' + i); ? –

+0

для обновления только текущего элемента в цикле – madalinivascu

0

$("body").append("<div class='panel panel-default' id='headingWiki_'><div class='panel-body'> "+wikiText()+" </div></div>" 
 
); 
 

 
function wikiText() { 
 
    return "asd"; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Что-то вроде этого

0

Вы пробовали это:

function wikiText() { 
    var returnHTML=""+ 
"<div class='panel panel-default' id='headingWiki_"+i+"'> "+ 
    " <div class='panel-body'> FUNCTION </div> "+ 
" </div>"; 

return returnHTML; 
} 

$("#accordionWiki").append(wikiText()); 

я думаю вам нужен я в качестве параметра для функции (I вики-текста)

Смежные вопросы