IE 7与getAttribute JS有关

时间:2012-10-02 20:08:12

标签: javascript internet-explorer dojo internet-explorer-7

朋友我需要一些帮助来解决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&amp; 9.我需要让它在IE 7上运行。

1 个答案:

答案 0 :(得分:0)

我有两个ID为 thumb-slider-tabs 的元素,这是xhtml违规。在IE中,dojo只找到第一个节点并忽略第二个节点,因此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事件处理程序。