Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击DIV按钮上的事件_Javascript_Jquery_Css - Fatal编程技术网

Javascript 单击DIV按钮上的事件

Javascript 单击DIV按钮上的事件,javascript,jquery,css,Javascript,Jquery,Css,我有一个DIV元素,用作javascript按钮。它工作正常,除非我点击某个区域,那么点击事件根本不会被触发。这似乎只是Chrome中的一个问题 HTML 单击按钮上的任何位置都可以正常工作,除非您恰好单击文本从左侧开始的位置。如果是我的小提琴,请单击字母“C”的左侧。您将看到事件不会触发。虽然这是一个小区域,但似乎我几乎每次都单击它 我什么都试过了。我猜这只是文本节点接受点击的问题,它没有传播到它的父节点?有没有办法解决这个问题?问题似乎是“试图”选择文本 将此添加到CSS中: body {

我有一个DIV元素,用作javascript按钮。它工作正常,除非我点击某个区域,那么点击事件根本不会被触发。这似乎只是Chrome中的一个问题

HTML

单击按钮上的任何位置都可以正常工作,除非您恰好单击文本从左侧开始的位置。如果是我的小提琴,请单击字母“C”的左侧。您将看到事件不会触发。虽然这是一个小区域,但似乎我几乎每次都单击它


我什么都试过了。我猜这只是文本节点接受点击的问题,它没有传播到它的父节点?有没有办法解决这个问题?

问题似乎是“试图”选择文本

将此添加到CSS中:

body {
    -moz-user-select: -moz-none;
    -webkit-user-select: none;
}
我在chrome中使用了Fiddle更新:

也只是一个想法。您可以将其从body更改为what,以防止您的“按钮”文本处于可选状态

更新:

告诉我你能不能打破这个!我也没能。基本上,我删除了填充,声明了高度和宽度,用一个名为
.label
的类将闭包包起来,并设置了边距

新JS:

.label{
    margin: 5px;
}
新HTML:

<div class="button"><div class="label">Close</div></div>
关闭

.button
中删除了填充CSS。button:active

尝试从:active事件中删除填充更改。我认为在你点击文本时移动文本的开头会导致一些奇怪的行为。我承认它改变了按钮的外观,这有点蹩脚

另外,尝试将填充设置得非常高(如
填充:60px 90px 40px 110px;
)。您应该看到,单击文本本身上的任何位置似乎更像是拖动操作,而不是单击操作

顺便说一下,这也发生在SafariforWindows中,所以我猜这是一个WebKit的东西


可能值得提交一份错误报告。

无法在Mac/Chrome上复制该错误-您正在使用什么?哪个版本的Chrome遇到了问题?我正在运行25.0.1364.68 beta-m,无论鼠标在“C”旁边的位置如何,点击都会为我触发。我可以在Win7/Chrome上复制它。我可以通过点击顶部曲线下方的“C”来复制它。“有什么想法可以解决这个问题吗?”是的,使用按钮而不是div。太好了!非常感谢你。我在IE中使用了
unselectable=“on”
属性。任何时候,顺便说一下,就像你的按钮:)说话太早了。实际上它不起作用。啊!还有其他想法吗?奇怪,对我来说很有用(而且我能在手之前复制它)。。。您使用的是什么操作系统和浏览器版本?您可能需要将CSS从
正文
切换到
。按钮
@ChrisEllenburg LOL!我想我应该早点回去看看。如果你喜欢我所改变的,请告诉我。我也做了同样的事情,但是去掉了所有的填充物,把标签用div包起来,并设置了它的边距,看起来效果不错。谢谢。我想这也一定是一只虫子。甚至在使用
按钮
标记时也会发生这种情况。我最后在文本上放置了一个额外的元素。这是另一种方法。很遗憾我们不得不做这样的事情。
.label{
    margin: 5px;
}
<div class="button"><div class="label">Close</div></div>