首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么要检查preventDefault,然后是preventDefault?

为什么要检查preventDefault,然后是preventDefault?
EN

Stack Overflow用户
提问于 2016-01-26 01:28:22
回答 3查看 2.5K关注 0票数 3

我正在尝试使用本网站的彩色滑块,这是源代码。下面的代码是做什么的:第134行

代码语言:javascript
复制
if (e.preventDefault) e.preventDefault();

我知道preventDefault()是做什么的,但是为什么它要检查preventDefault()那么preventDefault呢?为什么需要preventDefault()

此外,前面的行检查是否:

代码语言:javascript
复制
if (target !== this)

这有什么需要的?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-01-26 01:34:54

只是为了跨浏览器的支持。IE8或更低的版本不支持preventDefault,他们使用returnValue

代码语言:javascript
复制
//check preventDefault function is exists in event handler 'e'
if (e.preventDefault)

    // if browser support preventDefault, call preventDefault();
    e.preventDefault();

编辑:

if (target !== this)

在这段代码中,target是被点击的对象,它可以指向div#slidersdiv#silders的子元素(R、G、B、H、S、L滑块)。this指着div#sliders

因此,对于RGB,该代码的意思是“如果单击的对象不是div#sliders”,HSL滑块正常工作。

编辑2:

e.preventDefault()是存在的滑块移动(拖动)完美。

例如,如果游标在拖动时滑出,并且没有e.preventDefault(),则此函数将无法正常工作。

票数 3
EN

Stack Overflow用户

发布于 2016-01-26 01:33:15

跨浏览器支持,特别是IE的旧版本。在调用函数以防止错误之前,它需要检查函数是否存在。

票数 0
EN

Stack Overflow用户

发布于 2016-01-26 01:41:00

if子句中没有括号。因此,这不是一个函数调用,而是一个检查是否存在这样的方法。因此,他们只是检查方法是否存在,如果存在,他们就调用它。

至于目标,他们检查哪个元素首先得到了这个事件。如果是当前滑块,则忽略事件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35005597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档