2017-01-07 53 views
1

索引页加载时,我只需要加载一次弹出窗口。我在每个页面中都使用了相同的身体标记。如何通过点击锚标签来禁用body标签上的onload功能?

这里是我的代码,

HTML文件

<body> 
--------- 
------------ 
<a id="ac" href="about.php">About</a> 
</body> 

JS文件

$(document).ready(function(){ 

$("#ac").on("click", function(){ 

$('body').off(load); 
}); 

loadPopUp(); 

}); 

function loadPopUp() 
{ 

alert('xyz'); 
} 

当我的网页去 “about.php” 页,onload事件弹出应该禁用。

请给出一些建议或指示。

谢谢。

+0

你能提供一个工作小提琴吗? –

回答

-1

使用一个方法

$("#ac").one("click",function(){ }); 

一个方法将闪光一次,然后解除绑定。

如果您希望确保该功能只会触发一次有史以来每个浏览器,您可以使用localStorage。

if (localStorage.getItem("SomeSiteVisitFlag") === null) { 
    // Set the flag here (using the code in the event handler below) 
    // To indicate the user has visited any page of your site 
    $("#ac").one("click",function(){   
     // Set the flag here to indicate that the person clicked on #ac 
     localStorage.setItem("SomeSiteVisitFlag",true); 
    }); 
} 
+0

'$。一()'使事件火灾一旦_per页load_,一次也没有过。 – duskwuff

+0

本地存储用于永久存储 – Sajan

+0

@Sajan - 这就是为什么** ever **是粗体的。这取决于应用程序的要求。 – user2182349

2

您需要设置一个标志,你的会话存储,该标志将重置,当你关闭浏览器,

$(document).ready(function(){ 
    if(sessionStorage.getItem("popupflag")===null){ 
    loadPopUp(); 
    //sessionStorage.setItem("popupflag","true"); 
    } 
}); 

,如果你想在锚点击使用禁用的单击事件的代码

$("#ac").on("click", function(){ 
    sessionStorage.setItem("popupflag","true"); 
});