javascript - JQuery刷新页面,造成页面秒闪
大家讲道理
大家讲道理 2017-04-10 15:50:33
[JavaScript讨论组]

我的页面中有个下拉框,然后会根据下拉框的内容用 JQery 来隐藏或显示部分元素。
但是在 IE 下,下拉框选择了数据以后再次进入这个页面,会先显示原来的页面,然后秒闪一下到新的 JQuery 隐藏显示过的页面。
怎么能让他不秒闪呢?
能不能不改页面元素,光修改 js 代码改好?

比如我的默认页面是这样的

图1

然后 yySelectBox 选择 aaa,页面变成这样

图2

但是保存以后,从别的页面再进入这个页面,就会先显示图1,然后闪一下变成图2

我的 JS 代码

$(function() {
    $("#yySelectBox").change(function() {
        if (aaa) {
            xxx.hide();
        } else {
            xxx.show();
        }
    }
}
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(4)
怪我咯

能不能不改页面元素,光修改 js 代码改好?

不能,如果你不改变页面元素,不管怎样,第二个下拉框都是会先显示,然后js判断操作隐藏。
好的方式是,你把保存的结果加到页面元素上。

大家讲道理

你换个事件试试,jquery的change,是失去焦点的时候触发,很可能是触发了2次,你调试一下,是不是进入的2次这个方法 IE里面加个alert 试试.`$(function() {

var i = 1; 
$("#yySelectBox").change(function() {
alert(i++)
    if (aaa) {
        xxx.hide();
    } else {
        xxx.show();
    }
}

}`

高洛峰

。。。你默认让 UI上右侧的内容先隐藏

巴扎黑
//加载的时候先hide
function checkSelect(value)
{
    if(value == 'aaa')
        xxx.hide();
    else
        xxx.show();
}
$(function() {
    checkSelect($("#yySelectBox").val());
    $("#yySelectBox").change(function() {
        checkSelect($(this).val());
    }
});
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号