पर क्लिक करते समय फायरिंग फ़ोकस ईवेंट को रोकें यह प्रश्न मेरे पिछले प्रश्न, Click action on Focused DIV, जैसा ही है, लेकिन इस बार मुख्य विषय यह है कि जब मैं divs में से किसी एक पर क्लिक करता हूं तो फ़ोकस ईवेंट को ट्रिगर करने से कैसे रोकें। '- 1' पिछली बार मैंने tabindex = के साथ एक div था यह क्लिक पर फ़ोकस करने योग्य बनाने के लिए, अब मैं> 0 ताकि वे जब साथ ही टैब फोकस हासिल कर सकते हैं tabindex साथ divs की एक सूची है।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;
}
अब मैं एक एक्शन (चेतावनी) आग की एक ध्वज (कार्रवाई) का उपयोग कर रहा है जब 2 बार के लिए div क्लिक करके, और बस एक क्लिक के साथ करता है, तो यह पहले से ही है उदाहरण के लिए, टैब के साथ केंद्रित।
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 लाभ टैब पर ध्यान केंद्रित करते हैं। http://jsfiddle.net/3MTQK/1/
यदि मैं दो घटनाओं को एक तत्व में बांधता हूं, तो यह कैसे काम करता है? उदाहरण के लिए, यदि मैं लिखता हूं: $ (दस्तावेज़) .on ("टचस्टार्ट क्लिक", ".myelement", फ़ंक्शन (ई) {e.stopImmediatePropagation(); // रन फ़ंक्शन यहां}) .... अगर मैं चालू हूं एक टैबलेट डिवाइस, टचस्टार्ट आग पहले और अन्य सभी घटनाओं को रोका जाएगा? क्योंकि अभी अगर मैं एक तत्व पर क्लिक करता हूं और अपनी अंगुली को दबाता रहता हूं, तो टचस्टार्ट और क्लिक फ़ायर और मेरा फ़ंक्शन दो बार चलाया जाता है। रुक जाएगा ImedimediPropagation इसे ठीक करें? – Alex