Firefox没有在周围的div上注册click事件

时间:2017-07-27 07:03:06

标签: javascript jquery html events input

我有以下代码:

<div data-type="nameHolder">
   <input data-type="name" disabled="">
</div>

我的想法是保持输入禁用,只有当您双击它才能启用它。但是,由于在禁用的元素上未检测到点击事件,因此我使用了持有者div。这适用于Chrome,但不适用于Firefox。知道怎么解决吗?

2 个答案:

答案 0 :(得分:2)

由于禁用的元素不会触发事件,因此您可以使用div作为输入的包装器并将事件处理程序附加到此div。当您双击包装器div时,启用输入并隐藏包装器div。

&#13;
&#13;
$('.wrapper').dblclick(function(){
 $(this).prev('input').attr('disabled', false);
 $(this).hide();
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div data-type="nameHolder">
   <input data-type="name" disabled="">
   <div class="wrapper" style="position:absolute; top:0;left:0;right:0;bottom:0"></div>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

here已针对您的案例提供解决方案。作者建议在禁用的输入前面放置一个元素,并抓住该元素的点击以获得交叉浏览器支持。