こんにちは、onclick イベントが innerHTML を使用して書き込まれていることに問題があります。2 つの方法で試しましたが、どちらも機能しませんでした
呼び出す必要がある関数は
function loadnewsstory()
{
alert("123456");
}
現時点では、アラート ボックスに 123456 が表示されるはずですが、起動していません。
ロードする関数は次のとおりです
function newsstories()
{
document.getElementById("activecontent").innerHTML = "<h1 class='newsheader'>Latest News</h1>";
xmlhttp=new XMLHttpRequest();
xmlhttp.open("POST","test.com?uri=loadnews",false);
xmlhttp.send();
var newsreponse = JSON.parse(xmlhttp.responseText);
var countstories = 0;
for (var i = 0, len = newsreponse.length; i < len; ++i) {
var news = newsreponse[i];
if(i % 2 == 0){
cssclass = "even";
}
else
{
cssclass = "odd";
}
// alert(news.featured_image);
document.getElementById("activecontent").innerHTML += "<div class='news " + cssclass + "'><div class='newstitle'><div class='newstitlecolor'><a href='#' onclick='loadnewsstory();'>" + news.post_title + "</a></div></div><div class='base' style='background: url('" + news.featured_image + "');'><img src='" + news.featured_image + "' style='width:100%; height:100%;' id='news_"+ countstories +"'/></div></div>";
document.getElementById("news_"+countstories).onclick = function(){ loadnewsstory();}
countstories++;
}
}
ご覧document.getElementById("news_"+countstories).onclick = function(){ loadnewsstory();}
のとおり、私も実行しました。これは、以前に実行できたことがわかっているjavascript innerHTMLでonclickイベントを作成できないことを読んだためです。他の誰かがこの問題の修正を知っていれば、それは素晴らしいことです. これはcordova iphoneアプリ用です
ありがとう
編集
私はこれを発見しました
document.getElementById("activecontent").innerHTML += "<div class='news " + cssclass + "'><a href='javascript:openextlink();'><img src='" + news.featured_image + "' style='width:100%; height:100%;'/></a></div>";
動作しますが、最後のニュース記事でしか動作しないようです。何か不足していますか?