jquery-ui - jQuery UI slider - 如果开发人员工具未激活,则无法在 IE 上工作

标签 jquery-ui internet-explorer jquery-ui-slider ie-developer-tools

我有一个非常奇怪的问题。 我使用 jQuery 1.7.1 和 UI 1.8.17 作为 slider 。

它在 Chrome、Safari 和 FF 上的工作方式就像 charm(只要你不使用 firebug...)。 到目前为止一切顺利,但是!

它不适用于 IE(已使用 IE 8 和 9 进行测试)。然而,只要你打开 IE 开发者工具, slider 就可以工作了!

我完全不知道如何解决这个问题......所以希望你们中的任何人都可以帮助我!

我的 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);
    }});

最佳答案

摆脱 console.log 调用。当开发工具未打开时,IE 会被它们阻塞。

关于jquery-ui - jQuery UI slider - 如果开发人员工具未激活,则无法在 IE 上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9365938/

相关文章:

asp.net - 如何将 jQuery UI 按钮图标添加到输入按钮?

javascript - 如何动态创建对话框?

html - 我应该对 css.map 文件使用什么 rel 属性?

angular - 如何在使用 Internet Explorer 时禁用 Service Worker?

具有非线性/指数/对数步长的 JQuery UI slider

jQuery ui 多个 slider 与值混淆

jquery ui 可选择和可排序相结合

internet-explorer - Internet Explorer 9 不为内嵌附件使用文件名

c# - 如何在项目中包含本地化的 jquery datepicker