明示的なイベントとパラメーターを使用して行ごとに実行するのはばかげています。少しリファクタリングを検討する必要があります。明示的な ID を削除するには、クラスベースのハンドラーを設定するか、少なくとも親 ID をターゲットにして、子として添付する画像を見つけます。次のようにします。
<div id="example_6_frame">
<ul>
<li><a href="#"><img src="images/ex6_1t.jpg" alt="thumbnail 1" /></a></li>
<li><a href="#"><img src="images/ex6_2t.jpg" alt="thumbnail 2" /></a></li>
<li><a href="#"><img src="images/ex6_3t.jpg" alt="thumbnail 3" /></a></li>
<li><a href="#"><img src="images/ex6_4t.jpg" alt="thumbnail 4" /></a></li>
<li><a href="#"><img src="images/ex6_5t.jpg" alt="thumbnail 5" /></a></li>
<li><a href="#"><img src="images/ex6_6t.jpg" alt="thumbnail 6" /></a></li>
<li><a href="#"><img src="images/ex6_7t.jpg" alt="thumbnail 7" /></a></li>
</ul>
</div>
jsビット...
$("example_6_frame").getElements("img").each(function(el, i) {
el.addEvents({
click: function(e) {
ex6Carousel.goTo(i);
}
});
});
ここにも mootools の liveEvent 実装があります。http://dev.k1der.net/dev/live-events-pour-moootools/ - 上記に簡単に適応させることができます...
Element.implement({
addLiveEvent: function(event, selector, fn){
this.addEvent(event, function(e){
var t = $(e.target);
if (!t.match(selector)) return false;
fn.apply(t, [e]);
}.bindWithEvent(this, selector, fn));
}
});
スクリプトが mootools scroll.js を使用して要素を見つけてスクロールする場合、最終的に特定の ID を残す必要がある場合があることに注意してください。そうは言っても、この iCarousel は iMask を書いたのと同じ男からのものなので、よく書かれているはずです...