仅仅是为了跨浏览器兼容性。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 滑块),而 this
指向 div#sliders
。
所以这段代码的意思是,“如果被点击的对象不是 div#sliders,则 RGB、HSL 滑块能够正常工作”。
编辑2:
e.preventDefault()
存在是为了让滑块移动(拖动)更加完美。
例如,如果光标在你拖动时离开了滑块,并且没有 e.preventDefault()
,则该函数将无法正常工作。
preventDefault
的另一个问题呢?他写道:“这是针对那些小滴答器的点击。”“小滴答器”指的是什么? - HoraypreventDefault()
,它工作得很好。 - Horaytarget
,你写道:“如果是当前滑块,则忽略该事件。” 这是否意味着函数将再次触发,并且当前滑块是 event.target? - Horay
window.event.returnValue = false
。 - Oriol