为什么检查 if preventDefault,然后 preventDefault?
Why check if preventDefault, then preventDefault?
我正在尝试使用 this website, and here's the source code. What does the following code do: line 134
中的颜色滑块
if (e.preventDefault) e.preventDefault();
我知道 preventDefault()
的作用,但为什么要检查 preventDefault()
然后 preventDefault
?为什么需要 preventDefault()
?
此外,之前的行检查是否:
if (target !== this)
有什么必要?
跨浏览器支持,特别是 older versions of IE。它需要在调用它之前检查该函数是否存在以防止错误。
仅用于跨浏览器支持。 IE 8 或以下不支持 preventDefault
,他们使用 returnValue
.
//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#sliders
和div#silders
的子元素(R,G,B,H,S,L slider)。 this
指向 div#sliders
.
因此该代码意味着 "if clicked object is not div#sliders" 用于 RGB,HSL 滑块正常工作
编辑 2:
e.preventDefault()
滑块移动(拖动)完美存在。
例如,如果拖动时光标滑出,没有e.preventDefault()
,则此功能将无法正常使用。
if 子句中没有括号。因此,这不是函数调用,而只是检查是否存在这样的方法。因此他们只检查方法是否存在,如果存在则调用它。
至于目标,他们首先检查哪个元素得到了这个事件。如果它是当前滑块,他们将忽略该事件。
我正在尝试使用 this website, and here's the source code. What does the following code do: line 134
中的颜色滑块if (e.preventDefault) e.preventDefault();
我知道 preventDefault()
的作用,但为什么要检查 preventDefault()
然后 preventDefault
?为什么需要 preventDefault()
?
此外,之前的行检查是否:
if (target !== this)
有什么必要?
跨浏览器支持,特别是 older versions of IE。它需要在调用它之前检查该函数是否存在以防止错误。
仅用于跨浏览器支持。 IE 8 或以下不支持 preventDefault
,他们使用 returnValue
.
//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#sliders
和div#silders
的子元素(R,G,B,H,S,L slider)。 this
指向 div#sliders
.
因此该代码意味着 "if clicked object is not div#sliders" 用于 RGB,HSL 滑块正常工作
编辑 2:
e.preventDefault()
滑块移动(拖动)完美存在。
例如,如果拖动时光标滑出,没有e.preventDefault()
,则此功能将无法正常使用。
if 子句中没有括号。因此,这不是函数调用,而只是检查是否存在这样的方法。因此他们只检查方法是否存在,如果存在则调用它。
至于目标,他们首先检查哪个元素得到了这个事件。如果它是当前滑块,他们将忽略该事件。