safari / opera中的奇怪按钮行为

时间:2012-02-10 02:34:26

标签: javascript html

<button>标记似乎在Safari和Opera中有奇怪的行为(但不是Firefox)。如果按钮包含文本,那么我们有以下情况:

  • 如果您单击鼠标然后在不移动鼠标的情况下释放, onClick会发生

  • 按下按钮的非文本区域上的鼠标按钮,将鼠标拖动到按钮的其他非文本区域,释放, onClick发生

  • 按下按钮文本区域上的鼠标按钮,将鼠标拖动到按钮的其他文本区域,释放, onClick发生

然而,奇怪的是:

  • 按下按钮文本区域上的鼠标按钮,将鼠标拖动到按钮的非文本区域,释放, onClick不会发生

  • 按下按钮的非文本区域上的鼠标按钮,将鼠标拖动到按钮的文本区域,释放, onClick不会发生

这是一种奇怪的行为。大多数情况下它没有被注意到,但是如果你快速按下按钮,你的鼠标就可以在点击时移动。这意味着它看起来像你点击了按钮,但它没有激活。

这是一个已知问题吗?我认为这是因为文本不是按钮本身的一部分,只是一个子元素?周围有好的方法吗? <input type=button>没有这种行为,大概是因为文本不是按钮的单独html元素。

1 个答案:

答案 0 :(得分:1)

<button>是新的,仍然是高度实验性的。它应该只与HTML5一起使用。是的,它不仅在Safari和Opera中出现问题,甚至Chrome都有问题。

我的建议是使用<input type="button" />,直到所有现代浏览器支持大部分新标准为止。

最好等到HTML5正式发布,但是......好吧......这将是漫长的等待。