2012-02-10 68 views
0

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

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

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

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

然而,奇怪的是:

  • 向下按鼠标键按钮的文字区域,拖动鼠标按钮,释放非文本区域,的onClick不会发生

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

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

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

回答

1

<button>是新的并且仍然是高度实验性的。它只能与HTML5结合使用。是的,它不仅在Safari和Opera中有问题,即使Chrome也有问题。

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

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