JS / jQuery - 只运行一次

时间:2016-01-12 17:19:55

标签: javascript jquery function

我尝试每次会话只运行一次此脚本。用户向下滚动时,脚本应显示弹出窗口。

以下是显示滑出的代码。但是如何让它只运行一次?

jQuery(window).scroll( function(){
var wwd = jQuery(window).width();
if( wwd > 999 ){
fixedHeader();  // fix header on page scroll
}
});

var fixedHeader = function(){
var hdrHt = jQuery('header.site-header').height();
var scrPos = jQuery(window).scrollTop();
var aBarHt = jQuery('#wpadminbar').height();
if( scrPos > (hdrHt+700) ){
jQuery('div.slide').one.css('display','block');
jQuery('div.slide-hidden').css('display','none');
}
else
{
jQuery('div.slide-hidden').css('display','block');
}
}

RUN ONCE - 如果用户向下滚动700px - 显示滑出。如果用户返回顶部然后再次向下滚动 - 请勿第二次运行。运行一次预加载页面。

请帮忙。我不是程序员 - 我试图使用.one()但没有成功......我现在知道如何或在哪里放置它。请显示代码示例。

非常感谢!

1 个答案:

答案 0 :(得分:0)

将此方法更新为

var fixedHeader = function()
{
   var hdrHt = jQuery('header.site-header').height(); 
   var scrPos = jQuery(window).scrollTop();
   var aBarHt = jQuery('#wpadminbar').height();
   if( scrPos > (hdrHt+700) )
   {
      if ( $.trim( jQuery('div.slide').attr( "data-firsttime" ) ).length == 0 )
      {
         jQuery('div.slide').one.css('display','block');
         jQuery('div.slide').attr( "data-firsttime", "true" );
      }
      jQuery('div.slide-hidden').css('display','none');
   }
   else
   {
      jQuery('div.slide-hidden').css('display','block');
   }
}

基本上设置了要滑出的div的属性(在这种情况下的任何属性' data-firsttime')。下一次滑出之前检查是否已设置该值。