首次在页面加载时执行jquery脚本

时间:2016-03-18 17:29:54

标签: jquery asp.net

我的网页上有以下jquery脚本。第一次加载页面时会运行此脚本。我不希望这个脚本再次运行,只是第一次加载页面时。有可能吗?我用谷歌搜索了一下,有人提到我可以把.one然后它只执行一次。以下是代码:

 $(document).ready(function () {
        //Scroll div you the bottom onpage load
        $("#divTest").scrollTop($("#divTest")[0].scrollHeight);
    });

我的问题是我在这个页面上有一个数据网格,它位于div标签内。当我更新datagrid时。数据网格的滚动条一直到底部。虽然,我想,当我在datagrid上进行更新时,已更新页面的行应该保留在那里。为此,我在页面上有以下代码。用户希望当他们第一次被重定向到这个有数据网格的页面时,滚动条应该一直到底部,这就是原因,我在其中有jquery。

<div id="divTest" style="overflow:auto; height:900px; width:1600px" onscroll="SetDivPosition()" >

javascript就像这样

       function SetDivPosition() {
        var intY = document.getElementById("divTest").scrollTop;
        document.cookie = "yPos=!~" + intY + "~!";
    }

和这个

     window.onload = function () {
        var strCook = document.cookie;
        if (strCook.indexOf("!~") != 0) {
            var intS = strCook.indexOf("!~");
            var intE = strCook.indexOf("~!");
            var strPos = strCook.substring(intS + 2, intE);
            document.getElementById("divTest").scrollTop = strPos;
        }
    }

2 个答案:

答案 0 :(得分:1)

$(document).ready(function () {
if($.cookie("scriptExecuted")!="yes") {
        //Scroll div you the bottom onpage load
        $("#divTest").scrollTop($("#divTest")[0].scrollHeight);
        $.cookie("scriptExecuted", "yes");
}
});

使用cookies会很有帮助,您可以使用这个可爱的jquery插件来设置,取消设置和检索cookie值。 https://github.com/carhartl/jquery-cookie

逻辑很简单,检查设置cookie,如果没有设置执行,则执行时设置cookie。

jQuery-Cookies的CDN https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.js

这里是工作小提琴:https://jsfiddle.net/kzLkg1rk/

答案 1 :(得分:0)

当你说一次是指每页加载一次还是一次?

如果每页加载一次,那么我肯定你的代码会起作用。如果没有调用任何事件,那么这只会发生一次。如果它一直发生,请检查你加载脚本的次数。

如果你的意思是你不想让它再运行,但有一次浏览器加载它,那么你需要一个cookie。