كيفية محاكاة بنقرة واحدة إلى جعل المدخلات الحالية تفقد تركيزها مع جافا سكريبت

StackOverflow https://stackoverflow.com/questions/220488

  •  03-07-2019
  •  | 
  •  

سؤال

ولدي مدخلا الذي يحدث في بعض النقاط ليكون التركيز. إذا كان المستخدم النقر في "الخلفية" من الصفحة، يفقد مساهمة تركيزها. كنت أحاول أن محاكاة النقر على خلفية التعليمة البرمجية التالية، ولكن هذا لا يعمل (ستلاحظ أن المدخلات لا تزال لديه التركيز). أي اقتراح حول كيفية كتابة التعليمات البرمجية التي تحاكي انقر على "الخلفية" من الصفحة؟

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/yahoo/yahoo-min.js" ></script>
        <script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/event/event-min.js" ></script>
        <script type="text/javascript">
            YAHOO.util.Event.onDOMReady(function() {
                document.getElementById("input").focus();    
                document.getElementById("main").focus();    
            });
        </script>
    </head>
    <body>
        <div id="main">
            <form action="/">
                <p>
                    <input type="text" id="input"/>
                </p>
            </form>
        </div>
    </body>
</html>
هل كانت مفيدة؟

المحلول

وأتصور باستخدام blur() سوف تفعل خدعة:

<script type="text/javascript">
    YAHOO.util.Event.onDOMReady(function() {
        document.getElementById("input").focus();    
        document.getElementById("input").blur();    
    });
</script>

نصائح أخرى

وحاول استخدام الحدث blur. إذا كنت تستخدم مسج هناك طريقة يمكنك الاتصال على الكائن DOM لرفع هذا الحدث. يجب على طريقة blur() أيضا العمل دون مسج.

http://docs.jquery.com/Events/blur

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top