,當點擊這個問題是類似我剛纔的問題,Click action on Focused DIV, 但這次的主要議題是,如何防止觸發焦點事件,當我點擊的div之一。 上次我有一分度的tabindex =「 - 1」,使其可成爲焦點上點擊,現在我有tabindex屬性的div列表> 0,Tab鍵以及何時能夠獲得焦點。防止射擊焦點事件上的div
<div tabindex='1'>Div one</div>
<div tabindex='1'>Div two</div>
<div tabindex='1'>Div tree</div>
<div tabindex='1'>Div four</div>
一些造型:
div {
height: 20px;
width: 60%;
border: solid 1px blue;
text-align: center;
}
div:focus {
border: solid 2px red;
outline: none;
}
現在我使用的一個標誌(動作)來觸發一個動作(警報)點擊了第二次div時,並且只需點擊一下,如果它已經以TAB爲例。
var action = false;
$('div')
.click(function(e){
e.stopImmediatePropagation();
if(action){alert('action');}
action = true;})
.focus(function(){action = true;})
.blur(function(){action = false;});
上面的代碼的問題是焦點事件被解僱,這意味着stopImmediatePropagation不工作,我期待..這兩個按鍵動作作品評論的焦點事件行的方式,但你仍然需要加倍當div獲得關注TAB時點擊。 這裏是例子:http://jsfiddle.net/3MTQK/1/
如果我將兩個事件綁定到一個元素,這是如何工作的?例如,如果我寫:$(document).on(「touchstart click」,「.myelement」,function(e){e.stopImmediatePropagation(); //運行函數})....如果我在一款平板電腦設備,touchstart會先啓動,所有其他事件停止?因爲現在如果我點擊一個元素並保持手指不動,touchstart和click fire以及我的函數都會運行兩次。將stopImmediatePropagation修復? – Alex 2012-06-28 18:49:43