2010-07-03 23 views
0

我做了一个悬停与粘性点击'jquery脚本为我的网络投资组合,在Chrome,Opera,Firefox和Safari的作品 - 但我仍然有一些问题与IE浏览器。jQuery悬停w粘性点击/选择问题在IE浏览器

我有8个缩略图可以在悬停时在0.3和1之间褪色。点击后,它使用缩略图的索引显示相应的全尺寸图像。它还与一组数字相关联,1-8也可以在悬停时从0.3到1不透明度消失。

最不清楚的部分是应用悬停的选择。这是按类应用于缩略图/数字的,并使用可见图像的索引来过滤掉“点击”的拇指/数字,以使其保持完全不透明状态,而不管悬停。

使用IE这个'sticky click'不起作用,所有的元素都会恢复到悬停行为。我哪里错了? (我不需要它的工作回到IE6或什么,但我想至少获得当前IE才能正常工作。)

<script type="text/javascript"> 
$(function() {  
    $(".gall").hide(); 
    $(".gall:first-child").show(); 
    var thumbs = $(".thumb2,.thumb") 
    thumbs.fadeTo(0,0.3); 
    $(".thumb2:first-child,.thumb:first-child").fadeTo(0,1); 
    var notselected= $(".gall:visible").index(); 
    $(".thumb:not(#selected),.thumb2:not(#selected2)").hover(function (evt) {$(this).fadeTo(0,1);}, function (evt) {    
        $(".thumb:gt("+notselected+"),.thumb2:gt("+notselected+"),.thumb:lt("+notselected+"),.thumb2:lt("+notselected+")").fadeTo(0,0.3); 
    notselected.hover(function (evt) {notselected.fadeTo(0,1);},function (evt) {notselected.fadeTo(0,0.3);}); 
    }); 
    thumbs.click(function() { 
     var thumbindex1 = $(".thumb").index(this) 
     var thumbindex2 = $(".thumb2").index(this) 
     if (thumbindex1>thumbindex2) {var indexboth = thumbindex1} 
     else {var indexboth = thumbindex2} 
     var clicked = $(".thumb:eq("+indexboth+"),.thumb2:eq("+indexboth+")") 
     var notclicked = $(".thumb:gt("+indexboth+"),.thumb2:gt("+indexboth+"),.thumb:lt("+indexboth+"),.thumb2:lt("+indexboth+")") 
      $("#tryme").html("A " +(indexboth+1)+ " was clicked <br> B "+(indexboth+1)+ " was clicked"); 
      clicked.fadeTo(0,1); 
      notclicked.fadeTo(0,0.3); 
      $(".gall").hide(); 
      $(".gall:eq("+indexboth+")").show();    
     }); 
    }); 

相关的HTML很简单:


有容器: DIV类=“包含” 持有一个DIV类=“库”, 主图像内,每个IMG类=“瘿” /DIV - 库 -

有一个DIV class =“thumbcon tainer2" ,其中包含在一个单独的DIV类=数1-8的每个‘的Thumb2’

有一个DIV类=‘thumbcontainer’,其中包含缩略图每1-8在一个IMG类=‘拇指’

/DIV - 包含 -


很抱歉,如果我的jQuery代码是有点困惑,这是我第一次的jQuery/JavaScript的。我很兴奋,现在它在所有其他提到的浏览器中效果很好。 任何人都可以看到我打破Internet Explorer的位置吗?

在此先感谢您的帮助。 -DAN

回答

0

长和短的是,我使用.index()函数的方式是令人困惑的IE浏览器。我在另一个论坛中发现了一个建议,用.prevAll(selector).size()替换.index();达到相同的预期结果。这是成功的。

我仍然困惑,为什么这是一个IE的问题,当它在其他浏览器工作正常。可能我的语法有点问题。 jslint返回了已定义变量的问题,我使用条件来决定从哪个列表中选择'indexboth'变量。也许与此有关?