【问题标题】:How to debug why a jQuery function is not working?如何调试为什么 jQuery 函数不起作用?
【发布时间】:2017-04-05 22:56:30
【问题描述】:

我一直试图通过使用这个回调来让这个简单的函数工作,但我不明白我做错了什么。我想在滚动顶部大于零时调用一个函数。我是编程新手,我想不通。

是格式问题吗?

function alertme() {
    var $window = $(window);
    var window_top = $window.scrollTop(0);

    if (window_top > 0) {
        alert("alertme");
    };
};

【问题讨论】:

  • 使用参数调用scrollTop 会将scrollTop 设置为该参数。只需致电$window.scrollTop(); 即可获取价值。
  • 无论我是否定义一个值,仍然无法正常工作,这就是我最初尝试将值定义为 0 的原因
  • 请阅读How to Ask。关键词:“搜索和研究”和“解释......任何阻碍你自己解决的困难”。

标签: javascript jquery


【解决方案1】:

您可以使用 scrollTop() 方法来捕获当前的滚动顶部并附加一个处理程序来滚动,就像这样 -

$(window).scroll(function (e) {
    if($(window).scrollTop()>0) {
        alert("alertme");
    }
});

【讨论】:

  • 谢谢!如果我可能会问,我的功能导致它不正确是怎么回事?
  • 因为 window_top 应该是 $window.scrollTop() 而不是 $window.scrollTop(0),因为当您将 0 发送到函数时您会取消滚动顶部(并让用户到达顶部窗口)。
  • @JonathanBaker -- .scrollTop() 函数有两个“模式”(两个签名,有时在其他语言中称为重载,例如 C#)。如果您将 传递给此函数(例如 scrollTop(0)),则该函数将 设置 滚动顶部位置。如果您不传递值(例如scrollTop()),则函数将返回,或获取滚动顶部位置。我认为这是 jQuery 团队为了征服绝对新手/休闲程序员的土地而做出的一个糟糕的设计决定,但事实就是如此。
  • 非常感谢您的帮助!
猜你喜欢
  • 2012-05-12
  • 1970-01-01
  • 1970-01-01
  • 2021-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-12
相关资源
最近更新 更多