单击滚动条时是否应运行单击处理程序

Alo*_*hci 15 html javascript css onclick

看看这些HTML片段:Jsfiddle

<style>
  div { 
    margin:20px; 
    border: 30px red solid; 
    padding: 20px; 
    background-color:green;
    overflow-y:scroll; 
  }
</style>

<div onclick="alert('div clicked');">click me</div>
Run Code Online (Sandbox Code Playgroud)

现在,如果用户单击Firefox或Chrome中的滚动条,则不会触发div元素上的单击处理程序.另一方面,在IE中,点击处理程序会触发.

哪种行为是正确的?是否在任何地方定义了预期行为

Ajk*_*k_P 9

w3建议建议滚动条应放在元素的内边框边缘和外边框填充边缘之间.此外,滚动条的尺寸应从元素的尺寸中减去.

长话短说,滚动条不应该在元素内部.并且应适当调整元素的高度/宽度.


Bar*_*xto 0

我认为这两种行为都可以。当滚动条位于文档上方(即 Safari)时,它应该触发单击事件,而滚动条则不应该触发。(铬、火狐)。

我“建议”不要用滚动条上的单击来搞乱(试图处理这种行为),而是用滚动事件或单击(无论它是否在文档上)来搞乱。

我非常确定,对于移动浏览器,如果您尝试“猜测”会发生什么,这将是一个大故事。