私のマークアップでは<ul>
、サムネイルを保持するためにこれを空にしています:..。
<ul class="slideSelectors">
</ul><!-- END ul="slideSelectors" -->
...そして私はjQueryを使用して.slidedivの束をループし、サムネイルを生成しています:..。
// GENERATE THE SLIDE SELECTORS [THUMBNAILS]
$('.slides .slide').each(function() {
var ID = $(this).attr('id');
var imgTag = $(this).find('img').parent().html().split('meta" -->')[1];
var listItem = '<li><a href="#" title="'+ ID +'">'+imgTag+'</li>';
//$('.slideSelectors').html(listItem); // loads only last list item, since .html() replaces all previous LIs
//$('.slideSelectors').add(listItem); // NG in IE7, IE8
$('.slideSelectors').append(listItem); // NG in IE7, IE8
});
...そしてこれがトリガービジネスです:
$('.slideSelectors').on('click', 'li a', function(){
var selectorIx = parseInt($(this).closest('li').index(), 10);
newSlide(selectorIx);
});
...これらはすべてFF、Safariで魅力的です。
ただし、IE7 / 8は.append()でバイブするようには見えません。サムネイル画像はレンダリングされます(クリック不可)が、<li>
タグもアンカータグもないため、サムネイルはセレクターとして使用できなくなります。正しく見えるimgTag変数とlistItem変数の両方に警告しました(ただし、.slide divで正しいにもかかわらず、画像タグが不適切に閉じられています)。.prepend()と.html()を使用した同じ結果は、(関連する質問で提案されているように)良くありません。これは、.each()ループ内にあり、最後のサムネイルのみをレンダリングするためです。(私はまた、これが悪いHTMLに関連している可能性があることをSOの他の場所で読んだことがありますが、私のコードは有効です)
これは既知のバグのようですが、まだ修正されていません。別のトリガーセレクターを追加する以外は、私は考えがありません。誰かが私を解決策の方向に向けることができますか?
よろしくお願いします。
シェッキー