2017-07-27 79 views
1

註冊單擊事件我有以下代碼:火狐沒有對周圍的div

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

我的想法是保持輸入禁用,只有當你雙擊它來啓用它。但是,由於點擊事件沒有在禁用的元素上檢測到,我正在使用持有者div。這適用於Chrome,但不適用於Firefox。任何想法如何解決它?

+1

請添加jQuery代碼太 –

+0

給烏爾試圖代碼小提琴,可能這將有助於重新編碼爲firfox。 – Sathish

+0

爲什麼不直接將其設爲只讀? –

回答

2

由於禁用的元素不會觸發事件,因此可以使用div作爲輸入的包裝並將事件處理程序附加到此div。當你雙擊包裝div時,啓用輸入並隱藏包裝div。

$('.wrapper').dblclick(function(){ 
 
$(this).prev('input').attr('disabled', false); 
 
$(this).hide(); 
 
});
<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>

+0

這工作完美,謝謝! – user43051

1

here已經有針對您的案例的解決方案。作者建議在禁用的輸入前面放置一個元素,並捕獲該元素的點擊以獲得交叉瀏覽器支持。

+0

這工作完美,謝謝! – user43051