2

У меня действительно странная проблема. Я использую jQuery 1.7.1 и UI 1.8.17 для слайдера.jQuery UI слайдер - не работает на IE, если инструменты разработчика не активированы

Он работает как шарм на Chrome, Safari и FF (до тех пор, пока вы не заработаете firebug ...). Пока все хорошо, НО!

Это не работает на IE (проверено с IE 8 & 9). Однако, как только вы откроете инструменты разработчика IE, слайдер работает!

Я абсолютно не знаю, как исправить это ... так, надеюсь, кто-нибудь из вас, ребята, может мне помочь!

Мои JS-код:

$(document).ready(function(){ 
$("#content-slider").slider({ 
     animate: true, 
     value: 0, 
     slide: handleSliderSlide, 
     change:handleSliderChange 
     }); 

var c = parseInt($(".content-item").length); 
var isiPad = navigator.userAgent.match(/iPad/i) != null; 
//var w = eval((376 * c) + 1); 
if ($.browser.msie && parseInt($.browser.version)==9 || isiPad) { 
    var w = parseInt(eval(376.5 * c)); 
} 
else { 
    var w = eval(376.5 * c); 
} 

var s = $(window).width(); 


$("#content-scroll").attr('style', 'width:'+s+'px;'); 
$("#content-holder").attr('style','width:'+w+'px;'); 


if(isiPad){ 
     $("#content-slider").attr('style', 'width:'+eval(s - 49)+'px;margin-left:3px;'); 
    } 
    else if($.browser.msie) { 
     switch (parseInt($.browser.version)) { 
      case 9: 
       $("#content-slider").attr('style', 'width:'+eval(s - 49)+'px;margin-left:2px;'); 
       break; 
      case 8:  
       $("#content-slider").attr('style', 'width:'+eval(s - 49)+'px;margin-left:2px;'); 
       break; 
      case 7:  
       $("#content-slider").attr('style', 'width:'+eval(s - 49)+'px;margin-left:2px;'); 
       break;  
     } 

    } 
    else if ($.browser.safari) { 
     $("#content-slider").attr('style', 'width:'+eval(s - 48)+'px;margin-left:3px;'); 
    } 
    else{ 
     $("#content-slider").attr('style', 'width:'+eval(s - 49)+'px;margin-left:2px;'); 
     //$("#content-slider").attr('style', 'width:'+eval(s - 49)+'px;margin-left:2px;'); 
    } 

    $("a.fancybox").fancybox(); 

    $('#lnkproject').addClass('current'); 
     $('#lnkproject').click(function(){ 
      console.log('lnkproject.click'); 
      $('#lnkproject').addClass('current'); 
      $('#lnkskills').removeClass('current'); 
      $('#lnkcontact').removeClass('current'); 

      $("#content-slider").slider({ 
       animate: true, 
       value: 0, 
       slide: handleSliderSlide, 
       change: handleSliderChange 

      }); 
     }); 


    $('#lnkskills a').click(function(){ 
     console.log('lnkskills.click'); 
     $('#lnkproject').removeClass('current'); 
     $('#lnkcontact').removeClass('current'); 
     $('#lnkskills').addClass('current');   
     scval = parseInt(($("#content-holder").width() - $("#content-scroll").width())/100); 
     $("#content-slider").slider({ 
      animate: true, 
      value: eval(scval + 1), 
      slide: handleSliderSlide, 
      change: handleSliderChange 
     }); 
    }); 

    $('#lnkcontact').click(function(){ 
     console.log('lnkcontact.click'); 
     $('#lnkproject').removeClass('current'); 
     $('#lnkskills').removeClass('current'); 
     $('#lnkcontact').addClass('current');  
     $("#content-slider").slider({ 
      animate: true, 
      value: 100, 
      slide: handleSliderSlide, 
      change: handleSliderChange 
     }); 
    }); 

    $("#fp_prev_thumb").click(function() { 
     console.log('fp_prev_thumb.click'); 
     var slideval = parseInt($('#content-slider').slider("option", "value")); 
     $("#content-slider").slider({ 
      animate: true, 
      value: slideval - 10, 
      slide: handleSliderSlide, 
      change: handleSliderChange 
     }); 
    }); 

    $("#fp_next_thumb").click(function() { 
     console.log('fp_next_thumb.click'); 
     var slideval = parseInt($('#content-slider').slider("value")); 
     $("#content-slider").slider({ 
      animate: true, 
      value: (slideval + 10), 
      slide: handleSliderSlide, 
      change: handleSliderChange 
     }); 


    }); 

function handleSliderChange(e, ui){ 
     console.log('handleSliderChange'); 
     var maxScroll = $("#content-holder").width() - $("#content-scroll").width(); 
     $("#content-scroll").animate({scrollLeft: ui.value * (maxScroll/100) }, 200); 
    } 
function handleSliderSlide(e, ui) 
    { 
    console.log('handleSliderSlide'); 
     var maxScroll = $("#content-holder").width() - $("#content-scroll").width(); 
     $("#content-scroll").animate({scrollLeft: ui.value * (maxScroll/100) }, 20); 
    }}); 

ответ

6

Избавьтесь от console.log звонков. IE зажимает их, когда инструменты dev не открыты.

+1

Вы мой герой !!!! Спасибо! – kapale

+0

Добро пожаловать; рад помочь. – j08691

+1

Вы спасли день. Я бы никогда не нашел это решение нигде, кроме этого. –