jquery – 为什么输入中的标签会触发Click事件

前端之家收集整理的这篇文章主要介绍了jquery – 为什么输入中的标签会触发Click事件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我在标签内有输入,为什么句子中的每个单词都会触发点击事件?

这是一个jsFiddle的例子.无论您在第一句中单击哪个单词,都会触发该事件.

我在输入上添加了一些CSS,因此您可以看到无论您在鼠标悬停的第一个标签中的哪个位置,就像您将鼠标悬停在输入上一样.我还添加了第二个标签,在标签内部使用了一个标签,它可以正常工作(点击事件在点击标签中的单词时不会触发).

<label>Click <input type="submit" value="here" /> to go somewhere.</label>
<label>Click <a href="#">here</a> to go somewhere else.</label>

$('input,a').click(function() {
    alert('Clicked');
});

我的两个问题是:

>有没有办法在标签中使用标签不会触发点击事件的方式?
>在我的例子中,为什么click事件会触发句子中的每个单词?

解决方法

这是HTML规范的一部分 – 标签元素增加了相关输入的命中区域.您可以自己处理点击并使用preventDefault(),但是它不会在点击时停止按钮UI更改.

Example fiddle

或者,您可以使用适当的样式更改标签元素以使它们以相同的方式运行,但会损害用户的体验.

猜你在找的jQuery相关文章