使用click()方法的firefox屏幕问题

时间:2011-05-25 15:35:18

标签: javascript jquery

问题与Firefox在调用函数时将浏览器窗口刷新到100%有关。 如果浏览器视图是75%,并且我在链接上使用.click方法 - 页面刷新为100%那么函数执行。 Safari执行该功能而不刷新窗口。

现在代码如下:

function hideFlag(){

    $("#ftm").click(function () { 

    var stageWidth = $("#window_div").width();
    if (stageWidth <= 1200){

        $( "#window_div" ).animate({
            width: 1250,
          opacity: ".8",
        }, 1000 );
        $( "#flagDiv" ).animate({
          opacity: "0",
          }, 1000 ); 
        }
    else{
        $( "#window_div" ).animate({
        width: 500,
        opacity: ".6",
        }, 1000 );
        $( "#flagDiv" ).animate({
        opacity: "1",
        }, 1000 );
        }   
    });
}

在Firefox中,如果我的浏览器视图缩小到75%并且我用.mouseenter替换了.click()方法,则在没有重新绘制屏幕或在mouseenter上调整大小的情况下对div进行动画处理。我不明白click()和mouseenter()实现之间的区别。

解决了它。

这比我想象的要简单得多。正确使用“归还假”; click方法的参数 解决了我的问题。修改后的代码如下:

function hideFlag(){

            $("#ftm").click(function () { 
                var stageWidth = $("#window_div").width();
                if (stageWidth <= 1200){
                    $( "#window_div" ).animate({
                        width: 1250, 
                        opacity: ".8", 
                        }, 1000 ); return false;
                    $( "#flagDiv" ).animate({
                        opacity: "0",
                        }, 1000 ); return false;
                    }
                else{
                    $( "#window_div" ).animate({
                        width: 500, 
                        opacity: ".6", 
                    }, 1000 );return false;
                    $( "#flagDiv" ).animate({
                        opacity: "1", 
                    }, 1000 );return false;
                }   
            });
}

感谢大家的帮助。

1 个答案:

答案 0 :(得分:0)

这不是对你的问题的直接回答,但是评论的时间相当长。

你正在使用jQuery。我想你错过了整个跨浏览器库的事情。变化

stageWidth = document.getElementById("window_div").clientWidth

stageWidth = $("#window_div").width()

不需要特定于浏览器的代码。使用jQuery时也不需要addEventHandler函数。它会照顾浏览器之间的差异,因此您不必这样做。这意味着您可以将setUpClickHandler功能更改为:

function setUpClickHandler() {
    $('#ftm').click(hideFlag);
    $('#ath').click(showFlag);
}

并将showFlag更改为:

function showFlag(e){
    $('#flagDiv').show();
}

并更改

addEventHandler(window, "load", setUpClickHandler, false);

$(window).load(setUpClickHandler);