0

友人 IE 7 の問題を解決するために助けが必要です。これは私のコードです。

<div id="thumb-slider-tabs">
<ul class="ibm-tabs">
<li class="active"><a href="#slide1" rel="0" class="no-mobile show-tab"><img
src="/i/slider/featured_icon_1.jpg" alt=""/></a><span class="icon-overlay"></span><span>Announcement</span></li>

これは、次を使用して href をターゲットにする方法です。

dojo.query('#thumb-slider-tabs a').onclick(function(event){
var test = dojo.attr(event.currentTarget, 'rel');
alert(test);
switchTabs(dojo.attr(event.currentTarget, 'rel'), this.parentNode);
sliderClick = true;
});

IE 7 は onclick を認識せず、警告もしません。また、テストで rel 属性を表示しません。

提案があれば、IE 7 でこの問題を解決するために何ができるか教えてください。これは Chrome、Safari、Firefox、IE 8 & 9 で動作します。IE 7 で動作させる必要があります。

4

1 に答える 1

0

ID thumb-slider-tabsを持つ 2 つの要素がありましたが、これは xhtml 違反です。IE では、dojo は最初のノードのみを検出し、2 番目のノードを無視します。したがって、dojo.query('#thumb-slider-tabs a') はページ上の最初の 3 つのリンクを対象とし、Firefox、Chrome、および Safari のように他のリンクを対象としません。要するに、私の「onclick」ハンドラーは実際のノードに接続されていないため、タブでクリックがトリガーされませんでした。

var anchors = dojo.query('[id="thumb-slider-tabs"] a').forEach(function(element){
        dojo.connect(element, 'onclick', function(ev){
            dojo.stopEvent(ev);
            switchTabs( dojo.attr(element, 'rel'), element.parentNode);
            sliderClick = true;
            console.log(sliderClick + " " + "sliderClick value");
        });
    });

コードにこの変更を加え、タブをクリックすると onclick イベント ハンドラーがトリガーされます。

于 2012-10-08T18:06:12.520 に答える