.on'クリック'関数をAJAXでロードされたコンテンツで機能させるのに問題があります。
以前にjquery.liveを使用したことがありますが、.onを使用するのはこれが初めてであり、まったく同じように機能することを理解しているため、問題が発生している理由がわかりません。
以下は、クリックする要素を提供するHTMLです。
<h1>Press & Media</h1>
<div id="back"></div>
<div id="overlay-content">
<span id="edocs" class="tab"></span>
<span id="news" class="tab"></span>
<span id="partners" class="tab"></span>
</div>
以下は、AJAXコンテンツをロードする関数です。
$("#overlay-content").on('click','#news',function() {
var active = 1;
$("#loading").show();
$("#overlay-content").fadeOut(1000, function() {
$.get("http://<? echo ROOT; ?>includes/functions.php", { pressmediaNews: active }, function(data) {
$("#loading").hide(400);
$("#overlay-content").empty().append(data).fadeIn(1000);
});
});
});
これにより、次のHTMLが読み込まれます
<div id="news-left-panel">
<h4>News Section</h4>
<ul>
<li id="newsID2" class="newsYear">
<p>2012</p>
<ul class="newsMonths" style="display:none">
<li>Jan
<ul class="newsArticles" style="display:none">
<li onClick="newsID(2)">test</li>
</ul>
</li>
<li>Feb</li>
<li>Mar</li>
</ul>
</li>
<li id="newsID1" class="newsYear">
<p>2011</p>
<ul class="newsMonths" style="display:none">
<li>Dec
<ul class="newsArticles" style="display:none">
<li onClick="newsID(1)">Test</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
これで、上記のコードは実行されず、firebugにエラーなどが表示されます。
だから私はそれが実行されない理由について少し迷っています、alert()も実行されません。