javascript - 第一次后停止事件

标签 javascript jquery

当我处于特殊滚动位置 jquery.inview 时,我会触发一个事件。如果元素位于视口(viewport)中,它的工作原理是添加类。在我的脚本中我说的是以下内容

    var $BG = $('#BG')
$('#BG').bind('inview', function (event, visible) 
{
        if (visible == true) {
        $(this).addClass("inview");

        } else {

        $(this).removeClass("inview");
        }
    });

   if($BG.hasClass("inview")){

        $('#diagonal').css('left',0)
        $('#diagonal').css('top',0)

    }

但它一次又一次地触发 .css 事件,但我希望它们仅在 #BG 第一次获得“inview”类时触发。 谢谢特德

最佳答案

您可以添加一些 var 来告诉它是否已被触发:

var $BG = $('#BG'), firedInView = false;

$BG.bind('inview', function (event, visible) {
    if(!firedInView) {
        firedInView = true; //set to true and it won't be fired
        //do your stuff
    }
});

关于javascript - 第一次后停止事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14769681/

相关文章:

javascript - Parsley.js 提交表单验证失败

javascript - 防止 jQuery UI 中的重复数据可排序

javascript - 如何修复删除 div 功能无响应的问题?

jQuery 初学者 - Accordion 菜单,但按钮抖动

jquery 内容 slider 类似于 microsoft.com

javascript - 复制 stackoverflow 标签系统的功能

javascript - 通过id获取外层div,然后通过class获取内层div

javascript - 使用 ag-grid 进行单元格编辑的自定义日期选择器

javascript - 调整窗口大小时扩展的字体大小

javascript - 使用 jquery 中的 onclick 事件更改 HTML 属性值