首页 > 解决方案 > 如何运行一次事件函数

问题描述

我有很多关于java脚本(带有一些jquery)的问题,首先我试图在元素上的鼠标移动时检测鼠标X坐标:

(function() {
 'use strict';

 $('.AnyElement').mousemove(function (e) {
 console.log(e.pageX)
 });

 })();

一旦我知道有鼠标悬停等功能,我想检测鼠标 X...

但一般来说如何使这个函数运行一次并停止

第二,当有人写:

 if (document.body = 1) {
  // do anything
 }

他正在检查 document.body 是否等于 1

我在别人的代码中看到了一个我不明白的东西,它是:

  if (document.body) {
  // do anything
  }

功能做什么并不重要,重要的是他正在检查什么???

标签: javascriptjqueryfunction

解决方案


在回答您的第一个问题时,有几种方法可以做到这一点,一个例子是注册 mousemove 事件,然后在记录一次后删除该事件。

$('html').mousemove(function(e) {
      console.log(e.pageX);
      $('html').off('mousemove');
    })

另一种方法是使用 jQuery 中内置的一个事件侦听器。

$('html').one('mousemove',function(e) {
  console.log(e.pageX);
});

在回答您的第二个问题时,第一个语句正在寻找元素的长度,如果元素存在,它通常会大于 0。在第二个语句中 document.body 将根据是否返回 true 或 false 的布尔值元素存在。同样,您可以在 Javascript 中使用一百万种不同的方式来做同样的事情。

希望有帮助!


推荐阅读