2012-07-01 6 views
7

मेरे पास एक div है और जब उपयोगकर्ता div पर क्लिक करता है तो एक फ़ंक्शन को कॉल किया जाना चाहिए। और जब उपयोगकर्ता कुछ और क्लिक करता है (इस div के अलावा कुछ भी) एक और समारोह कहा जाना चाहिए।क्या जेएस या jQuery का उपयोग कर डीआईवी के लिए फोकस/खोया फोकस हैंडलर लिखना संभव है?

तो मूल रूप से मुझे इस डीआईवी से जुड़े फोकस() और खोए फोकस() फ़ंक्शन कॉल पर होना आवश्यक है। क्या यह जावास्क्रिप्ट में या यहां तक ​​कि jQuery में भी उपलब्ध है?

धन्यवाद।

+0

तुम क्यों onFocus जरूरत है अगर आप घटना क्लिक पर समारोह कॉल करना चाहते हैं? –

+0

@ मोहम्मद, हां, मैं फ़ोकस के बजाय क्लिक ईवेंट का उपयोग कर सकता हूं। लेकिन समस्या यह है कि, मुझे खोए गए फोकस इवेंट या इसके समान कुछ होना चाहिए। कोई उपाय? – Ivin

+0

नीचे मेरा जवाब देखें। –

उत्तर

16

यहाँ मैं आप क्या चाहते हैं http://jsfiddle.net/kPbfL/1/

के कार्य प्रदर्शन के लिए बनाया आप div को जोड़ने की जरूरत है tabindex विशेषता:

मार्कअप :

<div id="mydiv" tabindex="-1"></div> 

जावास्क्रिप्ट

$("#mydiv").focusin(function() { 
  $("#mydiv").css("background","red"); 
}); 
$("#mydiv").focusout(function() { 
  $("#mydiv").css("background","white"); 
}); 

सीएसएस

#mydiv{ 
width : 50px; 
    height:50px; 
    border : 1px solid red; 
}​ 
​ 
+1

केवल डेमो प्रयोजनों के लिए 'jsfiddle' का उपयोग करें। अपना पूरा कोड प्रश्न में ही लिखें। – Jashwant

+0

@ मोहम्मद, जशवंत धन्यवाद उन उत्तरदाताओं के लिए बहुत कुछ। मैंने जेएसफिल्ड डेमो देखा। वास्तव में मैं क्या चाहता था। लेकिन धीरे-धीरे, यह विधि नहीं है मेरे कोड में काम कर रहा है। यह कहता है => $ ("# mydiv")। फोकसिन एक फ़ंक्शन नहीं है। – Ivin

+1

@ ओआरबीबी, इसे आजमाएं [http://jsfiddle.net/kPbfL/3/](http://jsfiddle.net/kPbfL/3/) –

5

फोकस DIV पर काम नहीं करते: http://api.jquery.com/focus/

भी अच्छा पढ़ने: jquery : focus to div is not working

If you want to focus a div or anything normally can't be focused, set the tag's tabindex to -1 first. 
eg: $("div#header").attr("tabindex",-1).focus(); 
+0

आपकी विधि काम करती है और मुझे फ़ोकस() काम मिल रहा है। अब मैं lostFocus() को कैसे कार्यान्वित कर सकता हूं? धुंध() काम नहीं कर रहा है। – Ivin

+0

@Orbb Glad इससे मदद मिली: यहां आपको खोए गए फोकस/फोकस के लिए कोड लेना चाहिए: http://stackoverflow.com/questions/3088738/jquery-need-alternative-to-focusout ':)' –

+0

सुपरकोल! मुझे नहीं पता था कि 'tabindex' हैक :) – Jashwant

-1

ज़रूर।

$("#your-div-id").focusin(function() { 
    // code here 
}); 

$("#your-div-id").focusout(function() { 
    // code here 
}); 
+0

यह काम नहीं करता है। जैसा आपने सुझाव दिया मैंने कोशिश की। तब मैंने इसे बाध्य/लाइव के साथ करने की कोशिश की क्योंकि div गतिशील रूप से उत्पन्न होता है। लेकिन नहीं! :( – Ivin

0

सुनिश्चित नहीं हैं कि अगर इस समाधान अपने वेब पेज सूट, लेकिन आप पर JQuery इस्तेमाल कर सकते हैं() शरीर तत्व के लिए क्लिक करें घटना देते हैं और बच्चे div के लिए इसे सौंपने के लिए। फिर अपने ईवेंट हैंडलर में, आईडी विशेषता का परीक्षण करें और इस तरह से संभाल लें; कुछ की तरह:

$(body).on("click", "div", function (evt) { 
    if ($(this).attr("id") == "innerDiv") { 
      handle inner div click here 
    } else { 
      hanlde out div click here 
    { 
} 

आशा इस मदद करता है ...

संबंधित मुद्दे