2016-12-09 5 views
0

Ich habe eine appendWie ruft man eine Funktion in einem Append auf?

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

und eine Funktion wie

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

ich versuchte wikitext zu setzen(); innerhalb des Anhangs, wo ich schrieb FUNKTION, aber ich habe etwas falsch, vielleicht Verkettung, nicht sicher.

+0

' "+ wikitext() +"' benötigen ich als Parameter erraten? – guradio

+0

@guradio Ich werde es wieder versuchen, aber ich bin ziemlich sicher mit all meinen Versuchen Ich habe es getan und es hat nicht funktioniert –

+1

Was wird 'wikiText()' tun? Kannst du zeigen, was in der Funktion ist, was kommst du dort zurück? – caramba

Antwort

0

Sie können die Ergebnisse Ihrer Funktion anhängen, weil Sie einen Ajax-Aufruf in dieser Funktion verwendet werden, die asynchron ist, nennen es kurz nach dem Anfügen:

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); 
       }); 

Änderung der Wiki-Funktion nur die aktuelle aktualisieren Element in der Schleife:

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 wird jetzt versuchen –

+0

warum hast du wikiText ('headingWiki _' + i); ? –

+0

, um nur das aktuelle Element in der Schleife zu aktualisieren – 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>

So etwas wie dieses

0

Haben Sie versucht:

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

return returnHTML; 
} 

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

ich Ihnen für wikitext (I) Funktion

Verwandte Themen