【问题标题】:Refresh an element in Javascript刷新Javascript中的元素
【发布时间】:2011-12-28 16:15:03
【问题描述】:

感谢Refresh (reload) a page once using jQuery? 的回答,我可以解决问题。 我有一个带有复选框的弹出窗口,我想几乎立即反映来自参考主页的更改。 它在 Safari、Firefox、Chrome、Opera 和 Internet Explorer 中运行良好。

谢谢

function updateDiv(){
       var ord = getCookie('ordinals');
        if(  ord.indexOf("<?=$ordinal?>")==-1 ){
             document.getElementById("chk<?=$ordinal?>").checked=false//no checked
        }
        else {
            document.getElementById("chk<?=$ordinal?>").checked=true//checked
        }
        $('chk<?=$ordinal?>').html(newContent);
    }

    setInterval('updateDiv()', 1000); // that's 1 second
    ......
    ......
    <body onload="updateDiv(); ....

【问题讨论】:

  • 您一定忘了具体说明 Internet Explorer 的问题所在。
  • setInterval(updateDiv, 1000); 不仅比setInterval('updateDiv()', 1000); 更容易编写,而且效率更高,因为后者需要eviluated
  • 我不是 Windows 用户,我在虚拟磁盘上安装了 win7 用于测试目的。 IE9。我看不到任何错误,只有一张破纸:“兼容性视图...”
  • Pointy:当复选框在主页中被选中或取消选中时,更改不会像在其他浏览器中那样反映在打开的弹出复选框中。如果手动刷新弹出窗口或者我关闭并再次打开它,则复选框更改是正确的。我过去在所有浏览器中遇到的问题是,如果过去打开了弹出窗口,由于浏览器缓存,复选框状态与旧的相同。现在在 IE9 中不会发生这种情况:每次打开弹出窗口时,复选框状态都是正确的,问题是在保持打开状态时从主页更改它。
  • 也许我可以发布网站页面以了解我的意思。

标签: javascript refresh element


【解决方案1】:

我认为你的问题在于:

$('chk<?=$ordinal?>').html(newContent);

试试这个:

var jEl = $('chk<?=$ordinal?>');

jEl.empty();
jEl.append(newContent);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-14
    • 1970-01-01
    • 1970-01-01
    • 2021-07-03
    • 1970-01-01
    • 1970-01-01
    • 2017-07-03
    相关资源
    最近更新 更多