যখন কোনও 'অস্পষ্টতা' ইভেন্ট ঘটে, তখন আমি কীভাবে জানতে পারি যে কোন উপাদানটির ফোকাস * হয়েছে *?


186

ধরুন আমি blurএই জাতীয় কোনও HTML ইনপুট বাক্সে কোনও ফাংশন সংযুক্ত করেছি :

<input id="myInput" onblur="function() { ... }"></input>

blurফাংশনের অভ্যন্তরে ইভেন্টটি (যে উপাদানটিতে ক্লিক করা হয়েছিল) আগুন লাগার কারণে উপাদানটির আইডি পাওয়ার কোনও উপায় আছে? কিভাবে?

উদাহরণস্বরূপ, ধরুন আমার এর মতো স্প্যান রয়েছে:

<span id="mySpan">Hello World</span>

যদি আমি ইনপুট উপাদানটির ফোকাসের ঠিক পরে স্প্যানটিতে ক্লিক করি তবে ইনপুট উপাদানটির ফোকাসটি হারাবে। ফাংশনটি কীভাবে জানতে পারে যে এটি mySpanক্লিক করা হয়েছিল?

PS: যদি ইনপুট উপাদানটির onblur ইভেন্টের আগে স্প্যানটির অন্লিক ইভেন্টটি ঘটে থাকে তবে আমার সমস্যার সমাধান হবে, কারণ আমি নির্দিষ্ট স্থিতি ক্লিক করার কারণে কিছু স্থিতির মান নির্ধারণ করতে পারি।

পিপিএস: এই সমস্যার পটভূমি হ'ল blurইনপুট উপাদানটির ইভেন্টের কারণে প্রস্তাবগুলি সঙ্গে সঙ্গে অদৃশ্য হয়ে যাওয়া ছাড়া, পরামর্শগুলির প্রদর্শন করার জন্য আমি একটি এজ্যাক্স অটোকম্প্লেটার নিয়ন্ত্রণকে বহিরাগতভাবে (একটি ক্লিকযোগ্য উপাদান থেকে) ট্রিগার করতে চাই । সুতরাং আমি blurএকটি নির্দিষ্ট উপাদান ক্লিক করা হয়েছে কিনা ফাংশন চেক করতে চান , এবং যদি তাই হয়, অস্পষ্ট ঘটনা উপেক্ষা।


এটি একটি আকর্ষণীয় প্রশ্ন যা আমি পিছনে যুক্তি দেখতে পছন্দ করব - অর্থাৎ আপনি কেন এটি করছেন? প্রসঙ্গটি কী?
রাহুল

রাহুল এবং রোস্টেরোনাসিড, আমি আপনার মন্তব্যের প্রতিক্রিয়া হিসাবে প্রশ্নটি আপডেট করেছি (পিপিএস)।
মিশিগেল বারকেন্ট

1
এই তথ্যটি কিছুটা পুরানো হওয়ায়
জোনাথন এম

উত্তর:


86

হুম ... ফায়ারফক্সে আপনি explicitOriginalTargetক্লিক করা উপাদানটি টানতে ব্যবহার করতে পারেন । আমি toElementIE এর জন্যও এটি করার আশা করছিলাম , তবে এটি কাজ করে বলে মনে হচ্ছে না ... তবে আপনি নথিটি থেকে নতুন দৃষ্টি নিবদ্ধ করা উপাদানটি টানতে পারেন:

function showBlur(ev)
{
   var target = ev.explicitOriginalTarget||document.activeElement;
   document.getElementById("focused").value = 
      target ? target.id||target.tagName||target : '';
}

...

<button id="btn1" onblur="showBlur(event)">Button 1</button>
<button id="btn2" onblur="showBlur(event)">Button 2</button>
<button id="btn3" onblur="showBlur(event)">Button 3</button>
<input id="focused" type="text" disabled="disabled" />

ক্যাভেট: এই কৌশলটি কীবোর্ডের সাথে ক্ষেত্রগুলিতে ট্যাবিংয়ের ফলে ফোকাস পরিবর্তনের জন্য কাজ করে না , এবং ক্রোম বা সাফারিতে মোটেই কাজ করে না। ব্যবহার করে বড় সমস্যা (আইই ছাড়া) এটি ধারাবাহিকভাবে পর্যন্ত আপডেট করা হয় পরে ঘটনা প্রক্রিয়াকরণ করা হয়েছে, এবং প্রক্রিয়াকরণের সময় সব সময়ে কোন বৈধ মান থাকতে পারে! মিচিয়েল যে প্রযুক্তিটি ব্যবহার করে শেষ হয়েছিল তার কৌশলটির পরিবর্তনের সাথে এটি হ্রাস করা যেতে পারে :activeElementblur

function showBlur(ev)
{
  // Use timeout to delay examination of activeElement until after blur/focus 
  // events have been processed.
  setTimeout(function()
  {
    var target = document.activeElement;
    document.getElementById("focused").value = 
      target ? target.id||target.tagName||target : '';
  }, 1);
}

এটি বেশিরভাগ আধুনিক ব্রাউজারগুলিতে (ক্রোম, আইই এবং ফায়ারফক্সে পরীক্ষিত) কাজ করা উচিত, যে সতর্কতার সাথে ক্রোম ক্লিক করা বোতামগুলিতে (বনাম ট্যাবড করে) ফোকাস সেট করে না with


1
আমি দীর্ঘদিন ধরে স্পষ্টরূপে অরিজিনাল টার্গেটের মতো কিছু সন্ধান করছি। আপনি এটি কীভাবে আবিষ্কার করলেন?
কেভ

3
ফায়ারব্যাগে ইভেন্ট অবজেক্টটি পরীক্ষা করে। FWIW, সম্পত্তি মোজিলা-নির্দিষ্ট, এবং এমডিসি নথিভুক্ত: developer.mozilla.org/en/DOM/event.explicitOriginalTarget
Shog9

2
এটি ফায়ারফক্স 3.6 এবং উইন্ডোজের সাফারি 4.0.3 এ কাজ করে না (বা কাজ করা বন্ধ করে দিয়েছে?)
চেতন এস

1
@ জোনাথন: সম্পত্তিটি উপলভ্য, তবে blurঘটনাটি ছড়িয়ে পড়লে আপডেট হয় না । আমি উত্তর সহ উত্তর আপডেট করেছি। আপনি কি ক্রোম বা ফায়ারফক্সে এর জন্য অ্যাক্টিভেটমেন্ট ব্যবহার করার চেষ্টা করেছেন? এটি আপনাকে উপাদানটিকে অস্পষ্ট করে দেয় ...
শোগ 9

1
প্রকৃতপক্ষে এফএফ 31 এ কাজ করছে না: সুস্পষ্টঅরিনালাল টার্গেট বর্তমান অস্পষ্ট লক্ষ্য দেখায়, ডকুমেন্ট.এ্যাকটিভএলমেন্ট অস্পষ্ট ইভেন্টের জন্য বাতিল n
অ্যাড্রিয়ান মায়ার

75

2015 এর উত্তর : ইউআই ইভেন্ট অনুসারে আপনি ইভেন্টেরrelatedTarget সম্পত্তিটি ব্যবহার করতে পারেন :

EventTargetইভেন্টের ধরণের উপর নির্ভর করে ফোকাস ইভেন্টের সাথে সম্পর্কিত একটি মাধ্যমিক সনাক্ত করতে ব্যবহৃত হয় ।

জন্য blurঘটনা,

relatedTarget: ইভেন্ট লক্ষ্য গ্রহণের ফোকাস।

উদাহরণ:

function blurListener(event) {
  event.target.className = 'blurred';
  if(event.relatedTarget)
    event.relatedTarget.className = 'focused';
}
[].forEach.call(document.querySelectorAll('input'), function(el) {
  el.addEventListener('blur', blurListener, false);
});
.blurred { background: orange }
.focused { background: lime }
<p>Blurred elements will become orange.</p>
<p>Focused elements should become lime.</p>
<input /><input /><input />

দ্রষ্টব্য ফায়ারফক্স relatedTarget48 সংস্করণ ( বাগ 962251 , MDN ) না হওয়া পর্যন্ত সমর্থন করবে না ।


ফায়ারফক্সের সমর্থন নেই, তবে একটি টিকিট রয়েছে: bugzilla.mozilla.org/show_bug.cgi?id=687787
স্যান্ডস্ট্রম

3
এখন এটা আছে। এখানে দেখুন ।
rplaurindo

ওয়েব সম্প্রদায়কে
ভালবাসুন

6
দুর্দান্ত সমাধান। দুর্ভাগ্যক্রমে, যদি লক্ষ্য গ্রহণের ফোকাসটি কোনও ইনপুট উপাদান না হয় তবে relatedTargetফিরে আসবে null
পেড্রো হোহেল কারভালহো

5
ফোকাস উপাদান প্রাপ্তি যদি কোনও ইনপুট উপাদান না হয় তবে এতে একটি tabIndex="0"বৈশিষ্ট্য যুক্ত করুন এবং এটি কাজ করবে
ড্যানি

19

অন্বলুর ইভেন্টের সময়সীমা নিয়ে অবশেষে আমি এটিকে সমাধান করেছি (স্ট্যাক ওভারফ্লো নয় এমন কোনও বন্ধুর পরামর্শের জন্য ধন্যবাদ):

<input id="myInput" onblur="setTimeout(function() {alert(clickSrc);},200);"></input>
<span onclick="clickSrc='mySpan';" id="mySpan">Hello World</span>

এফএফ এবং আইই উভয় ক্ষেত্রেই কাজ করে।


9
এটি কি জাভাস্ক্রিপ্ট ওয়ার্ল্ড বিটিডব্লিউতে খারাপ অভ্যাস হিসাবে বিবেচিত?
মিশিগেল বারকেন্ট

1
পুরানো পোস্ট কিন্তু আমার একই প্রশ্ন। নির্বিশেষে, এটি একমাত্র জিনিস যা মনে হয় ক্রস ব্রাউজারটি কাজটি সম্পন্ন করে।
জোশ

এই উত্তরটি অন্য কোনও সমস্যা সমাধানের মাধ্যমে আমার একটি টোনকে সহায়তা করেছে ... ধন্যবাদ মাইকেল!
অ্যালেক্স

@ মিশেলবার্কেন্ট এটি একটি খারাপ বাস্তবায়ন কারণ এটি ইভেন্ট চালিত নয়। আপনি একটি নির্দিষ্ট সময়ের জন্য অপেক্ষা করুন এবং কেবলমাত্র এটি যথেষ্ট দীর্ঘ হয়েছে আশা করি। আপনি যত বেশি নিরাপদ অপেক্ষা করুন ততক্ষণ আপনি যদি আরও অপেক্ষা করার প্রয়োজন না পড়েন তবে আপনি আরও বেশি সময় নষ্ট করবেন। হতে পারে যে কেউ সত্যিই পুরানো / ধীর ডিভাইসে আছেন এবং এই সময়সীমাটি যথেষ্ট নয়। দুর্ভাগ্যক্রমে আমি এখানে আছি কারণ ঘটনাগুলি আমাকে ফায়ারফক্সে ক্লিক করা হচ্ছে কিনা তা নির্ধারণ করার জন্য আমার যা প্রয়োজন তা সরবরাহ করা হচ্ছে না, তবুও এটি অন্যান্য সমস্ত ব্রাউজারের জন্য কাজ করে। আমি এখন এই পদ্ধতিটি খারাপ ব্যবহার অনুভব করেও এই পদ্ধতিটি ব্যবহার করতে খুব প্রলুব্ধ।
সিটিএস_এই

1
এই প্রশ্নটি বেশ পুরানো, এটি ২০০৮ এ ফিরে যায় Meanwhile এরই মধ্যে আরও ভাল পন্থা থাকতে পারে। আপনি কি 2015 এর উত্তর চেষ্টা করতে পারেন?
মিচিয়েল বারকেন্ট

16

অস্পষ্টতার পরিবর্তে দস্তাবেজের মোডাউনড ইভেন্টটি ব্যবহার করা সম্ভব:

$(document).mousedown(function(){
  if ($(event.target).attr("id") == "mySpan") {
    // some process
  }
});

8

প্রকারের FocusEventউদাহরণগুলিতে relatedTargetএফএফের 47 সংস্করণ পর্যন্ত বৈশিষ্ট্য রয়েছে, বিশেষত, 48 টি ইতিমধ্যে কাজ করা থেকে এই বৈশিষ্ট্যটি বাতিল হয়ে যায়।

আপনি এখানে আরও দেখতে পারেন ।


2

আমি যদি নির্দিষ্ট উপাদান ক্লিক করে এবং তার সমাধানের সমাধান থাকে তবে অটোকম্প্লেটারকে অস্পষ্টতা উপেক্ষা করার চেষ্টা করছি, তবে কেবলমাত্র ফায়ারফক্সের জন্য স্পষ্টরূপে অরিজিনাল টার্গেটের কারণে

Autocompleter.Base.prototype.onBlur = Autocompleter.Base.prototype.onBlur.wrap( 
        function(origfunc, ev) {
            if ($(this.options.ignoreBlurEventElement)) {
                var newTargetElement = (ev.explicitOriginalTarget.nodeType == 3 ? ev.explicitOriginalTarget.parentNode : ev.explicitOriginalTarget);
                if (!newTargetElement.descendantOf($(this.options.ignoreBlurEventElement))) {
                    return origfunc(ev);
                }
            }
        }
    );

এই কোডটি অটোকম্প্লেটারের ব্লুয়ার পদ্ধতিতে ডিফল্ট আবৃত করে এবং ব্লুআরেন্টএলমেন্ট পরামিতিগুলি উপেক্ষা করে যদি তা পরীক্ষা করে। যদি এটি সেট করা থাকে, এটি ক্লিককৃত উপাদানগুলিকে ব্লুভেরেন্টএলমেন্টটি অগ্রাহ্য করে কিনা তা সর্বদা পরীক্ষা করে দেখুন। যদি এটি হয় তবে অটোকম্প্লেটারটি ব্লুয়ারকে কল করে না, অন্যথায় এটি ব্লুরকে কল করে। এটির সাথে একমাত্র সমস্যাটি হ'ল এটি কেবল ফায়ারফক্সে কাজ করে কারণ সুস্পষ্ট অর্গিনাল টার্গেট সম্পত্তি মজিলা নির্দিষ্ট। এখন আমি স্পষ্টই ওরিজিনাল টার্গেট ব্যবহারের চেয়ে আলাদা উপায় সন্ধান করার চেষ্টা করছি। আপনার উল্লিখিত সমাধানটির জন্য আপনাকে মৌলিকভাবে অনক্লিক আচরণ যুক্ত করতে হবে to আমি যদি স্পষ্টরূপে অরিজিনাল টার্গেট সমস্যাটি সমাধান করতে না পারি তবে আমার ধারণা আমি আপনার সমাধানটি অনুসরণ করব।


2

আপনি যা যাচাই করছেন এবং আপনি কখন তা বিপরীত করতে পারেন? এটিই যদি আপনি স্মরণে রাখেন যে শেষটি অস্পষ্ট ছিল:

<input id="myInput" onblur="lastBlurred=this;"></input>

এবং তারপরে আপনার স্প্যানের জন্য অনক্লিকটিতে, উভয় বস্তুর সাথে ফাংশন () কল করুন:

<span id="mySpan" onClick="function(lastBlurred, this);">Hello World</span>

আপনার ফাংশন তখন সিদ্ধান্ত নিতে পারে অজাক্স.আউটকম্প্লেটার নিয়ন্ত্রণটি ট্রিগার করতে হবে। ফাংশনটিতে ক্লিক করা বস্তু এবং অস্পষ্ট বস্তু রয়েছে। অনব্লুর ইতিমধ্যে ঘটেছে তাই এটি পরামর্শগুলি অদৃশ্য করে না।


1

এর মতো কিছু ব্যবহার করুন:

var myVar = null;

এবং তারপরে আপনার ফাংশনের ভিতরে:

myVar = fldID;

এবং তারপর:

setTimeout(setFocus,1000)

এবং তারপর:

function setFocus(){ document.getElementById(fldID).focus(); }

চূড়ান্ত কোড:

<html>
<head>
    <script type="text/javascript">
        function somefunction(){
            var myVar = null;

            myVar = document.getElementById('myInput');

            if(myVar.value=='')
                setTimeout(setFocusOnJobTitle,1000);
            else
                myVar.value='Success';
        }
        function setFocusOnJobTitle(){
            document.getElementById('myInput').focus();
        }
    </script>
</head>
<body>
<label id="jobTitleId" for="myInput">Job Title</label>
<input id="myInput" onblur="somefunction();"></input>
</body>
</html>

1

আমি মনে করি এটি সম্ভাব্য নয়, আইই দিয়ে আপনি ব্যবহার করার চেষ্টা করতে পারেন window.event.toElement, তবে এটি ফায়ারফক্সের সাথে কাজ করে না!


ক্রোম বা সাফারি দিয়ে কাজ করে না। আইই এর নতুন সংস্করণগুলির সাথে কাজ করবে না যা আরও মান সম্মত।
রোবোক্যাট

1

এই উত্তরে উল্লিখিত হিসাবে , আপনি এর মান পরীক্ষা করতে পারেন document.activeElementdocumentগ্লোবাল ভেরিয়েবল, তাই আপনার অন্লুয়ার হ্যান্ডলারে এটি ব্যবহার করার জন্য আপনাকে কোনও যাদু করতে হবে না:

function myOnBlur(e) {
  if(document.activeElement ===
       document.getElementById('elementToCheckForFocus')) {
    // Focus went where we expected!
    // ...
  }
}

1
  • ডকুমেন্ট.এ্যাকটিভএলিমেন্ট একটি প্যারেন্ট নোড হতে পারে (উদাহরণস্বরূপ বডি নোড কারণ এটি একটি লক্ষ্য থেকে অন্যটিতে স্যুইচ করা অস্থায়ী পর্যায়ে থাকে), সুতরাং এটি আপনার সুযোগের জন্য ব্যবহারযোগ্য নয়
  • ev.expectedOriginalTarget সর্বদা মূল্যবান হয় না

সুতরাং সর্বোত্তম উপায় হ'ল পরোক্ষভাবে আপনার নোড (ইভেন্ট.আরজেট) অস্পষ্ট হওয়ার জন্য বডি ইভেন্টে অন্লিক ব্যবহার করা


1

গুগল ক্রোম v66.x, মোজিলা v59.x এবং মাইক্রোসফ্ট এজ এ কাজ করে ... jQuery সহ সমাধান।

আমি ইন্টারনেট এক্সপ্লোরার 9 এ পরীক্ষা করি এবং সমর্থিত নয়।

$("#YourElement").blur(function(e){
     var InputTarget =  $(e.relatedTarget).attr("id"); // GET ID Element
     console.log(InputTarget);
     if(target == "YourId") { // If you want validate or make a action to specfic element
          ... // your code
     }
});

অন্যদের ইন্টারনেট এক্সপ্লোরার সংস্করণগুলিতে আপনার পরীক্ষার মন্তব্য করুন।


0

সম্পাদনা: এটি করার একটি হ্যাকি উপায় হ'ল এমন একটি ভেরিয়েবল তৈরি করা যা আপনার যত্ন নেওয়া প্রতিটি উপাদানগুলির জন্য নজর রাখে। সুতরাং, যদি আপনি যত্ন করে থাকেন যে 'মাই ইনপুট' ফোকাস হারিয়ে ফেলেছে তবে ফোকাসে এটিতে একটি পরিবর্তনশীল সেট করুন।

<script type="text/javascript">
   var lastFocusedElement;
</script>
<input id="myInput" onFocus="lastFocusedElement=this;" />

আসল উত্তর: আপনি 'এটি' ফাংশনে পাস করতে পারেন।

<input id="myInput" onblur="function(this){
   var theId = this.id; // will be 'myInput'
}" />

এটি প্রশ্নের উত্তর দেয় না, আশা করি অতিরিক্ত উদাহরণ দিয়ে আমি এটি আরও পরিষ্কার করে
দিয়েছি

0

আমি গ্লোবাল ভেরিয়েবলগুলি blurfrom এবং blurto ব্যবহার করার পরামর্শ দিচ্ছি। তারপরে, ডিএমএমে তাদের অবস্থানটি ভেরিয়েবল ব্লারফ্রমে যখন তাদের ফোকাস হারাবে তখন তাদের অবস্থান নির্ধারণের জন্য আপনার যত্ন নেওয়া সমস্ত উপাদান কনফিগার করুন। অতিরিক্তভাবে, এগুলি কনফিগার করুন যাতে ফোকাস অর্জনটি ভেরিয়েবল ব্লুরটোকে ডিওমে তাদের অবস্থানের জন্য সেট করে । তারপরে, আপনি ব্লুরফ্রুম এবং ব্লুরটো ডেটা বিশ্লেষণ করতে পুরোপুরি অন্য ফাংশন ব্যবহার করতে পারেন।


এটি প্রায় সমাধান, তবে অন্বলুর ইভেন্ট হ্যান্ডলারে আমার ইতিমধ্যে কোন আইটেমটি ক্লিক করা হয়েছে তা জানতে হবে, সুতরাং অন্বলুরের একটি সময়সীমা আমার জন্য এটি করেছিল।
মিশিগেল বারকেন্ট

0

মনে রাখবেন, স্পষ্টরূপে অরগিনাল টার্গেট সহ সমাধানটি পাঠ্য-ইনপুট-থেকে-পাঠ্য-ইনপুট জাম্পগুলির জন্য কাজ করে না।

নিম্নলিখিত পাঠ্য ইনপুটগুলির সাথে বোতামগুলি প্রতিস্থাপনের চেষ্টা করুন এবং আপনি পার্থক্যটি দেখতে পাবেন:

<input id="btn1" onblur="showBlur(event)" value="text1">
<input id="btn2" onblur="showBlur(event)" value="text2">
<input id="btn3" onblur="showBlur(event)" value="text3">

0

আমি এই একই বৈশিষ্ট্যটির সাথে খেলছি এবং জানতে পেরেছি যে এফএফ, আইই, ক্রোম এবং অপেরা কোনও ইভেন্টের উত্স উপাদান সরবরাহ করার ক্ষমতা রাখে। আমি সাফারি পরীক্ষা করিনি তবে আমার ধারণা এটির মতো কিছু থাকতে পারে।

$('#Form').keyup(function (e) {
    var ctrl = null;
    if (e.originalEvent.explicitOriginalTarget) { // FF
        ctrl = e.originalEvent.explicitOriginalTarget;
    }
    else if (e.originalEvent.srcElement) { // IE, Chrome and Opera
        ctrl = e.originalEvent.srcElement;
    }
    //...
});

এই কাজ করে কেন ডাউনভোটিং? শুধু সরলপরিচয় সরান!
ফেকিরি মেল্ক

0

জাভাস্ক্রিপ্ট কোডিং করার সময় টাইমআউট ব্যবহার করা পছন্দ করি না তাই আমি এটি মিশিগেল বারকেন্টের বিপরীত উপায়ে করব would (পিছনে কোডটি চেষ্টা করে দেখেনি তবে আপনার ধারণাটি পাওয়া উচিত)।

<input id="myInput" onblur="blured = this.id;"></input>
<span onfocus = "sortOfCallback(this.id)" id="mySpan">Hello World</span>

মাথায় এমন কিছু

<head>
    <script type="text/javascript">
        function sortOfCallback(id){
            bluredElement = document.getElementById(blured);
            // Do whatever you want on the blured element with the id of the focus element


        }

    </script>
</head>

0

আপনি IE সহ এটি ঠিক করতে পারেন:

 event.currentTarget.firstChild.ownerDocument.activeElement

এটি এফএফের জন্য "স্পষ্টকৃত ওরিজিনাল টার্গেট" এর মতো দেখাচ্ছে।

এন্টোইন এবং জে


0

কোনও বিকল্পকে কীভাবে মনোনিবেশযোগ্য এবং "ব্ল্যারেবল" করা যায় তার বিকল্প বিকল্প আমি লিখেছি ।

এটি উপাদান হিসাবে contentEditableদৃশ্যমানভাবে লুকিয়ে থাকা এবং সম্পাদনা মোডটি নিজেই অক্ষম করার উপর ভিত্তি করে:

el.addEventListener("keydown", function(e) {
  e.preventDefault();
  e.stopPropagation();
});

el.addEventListener("blur", cbBlur);
el.contentEditable = true;

ডেমো

দ্রষ্টব্য: ক্রোম, ফায়ারফক্স এবং সাফারি (ওএস এক্স) এ পরীক্ষিত। আইই সম্পর্কে নিশ্চিত নয়।


সম্পর্কিত: আমি ভ্যুজেজেসের জন্য একটি সমাধান অনুসন্ধান করছিলাম, সুতরাং যারা ভয়ে ফোকাসেবল নির্দেশিকা ব্যবহার করে এই জাতীয় কার্যকারিতা কীভাবে প্রয়োগ করতে আগ্রহী / কৌতূহলী তাদের জন্য দয়া করে একবার দেখুন


-2

এই পথে:

<script type="text/javascript">
    function yourFunction(element) {
        alert(element);
    }
</script>
<input id="myinput" onblur="yourFunction(this)">

বা আপনি যদি জাভাস্ক্রিপ্টের মাধ্যমে শ্রোতাদের সংযুক্ত করেন (এই উদাহরণে jQuery):

var input = $('#myinput').blur(function() {
    alert(this);
});

সম্পাদনা : দুঃখিত। আমি প্রশ্নটি ভুলভাবে পড়েছি।


3
যদি আপনি সচেতন হন যে এটি প্রশ্নের উত্তর নয় এবং আপনি এটি ভুলভাবে পড়ে থাকেন তবে দয়া করে এটি অনুযায়ী আপডেট করুন বা এটি মুছুন।
টিজে

-2


আমি মনে করি এটি "এটি" -তে অন্বলুর ইভেন্টের কারণের ক্ষেত্রের রেফারেন্সটি পেরিয়ে jquery এর মাধ্যমে এটি সহজেই সম্ভব।
যেমন যেমন

<input type="text" id="text1" onblur="showMessageOnOnblur(this)">

function showMessageOnOnblur(field){
    alert($(field).attr("id"));
}

ধন্যবাদ
মনিকা



-2

আমি কেবল উত্তরগুলিতে হ্যাক দেখতে পাচ্ছি, তবে বাস্তবে এটি ব্যবহারের জন্য খুব সহজ একটি বিল্টিন সমাধান রয়েছে: মূলত আপনি ফোকাস উপাদানটি এর মতো ক্যাপচার করতে পারেন:

const focusedElement = document.activeElement

https://developer.mozilla.org/en-US/docs/Web/API/DocumentOrShadowRoot/activeElement


কমপক্ষে আমার ক্ষেত্রে, এটি অ্যাকটিভ এলিমেন্ট শরীর হিসাবে কাজ করে না, আমি যদি পরের রেন্ডার / টিকটিতে এটি পরীক্ষা করি তবে এটি সঠিকভাবে সেট করা আছে। তবে মনে হয় শোগ 9 এর সমাধানই হ'ল একমাত্র সঠিক সমাধান কারণ এটি নিশ্চিত করে যে কোনও টিক টেক হচ্ছে।
ম্যাথিজস সেগার্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.