2017-05-30 15 views
1

body-elementイベントのキーダウンは、クリックイベントハンドラによってbutton-elementを無効にした後に起動を停止します。Mozilla FirefoxのjQuery keydownイベント処理の問題

アクションシーケンス:KeyDownイベントは、STのKeyDown体

  • クリックして発射を停止するのKeyDownボタンを

  • クリック

  • を発射さ

    • 芸術の再発射

    Notice: この現象は、mozilla firefoxでのみ発生します。 Google Chromeでは、それは正常に機能します。

    
     
    $(document).ready(function(){ 
     
        $('body').keydown(function() { 
     
         console.log('<body> keydown'); 
     
        }); 
     
    
     
        $('#button').click(function() { 
     
         this.disabled = true; 
     
        }); 
     
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
     
    <button id="button">Button</button>

  • +0

    this.blur()を追加した場合。 ボタンをクリックした後で、ボタンにフォーカスを置いているのは殺害とキーダウンのイベントですか? 'this.disabled = true'の後に' this.blur() 'を追加するとどうなりますか? – SpoonNZ

    +0

    それは助け!どうもありがとうございました! –

    +0

    これをあなたの答えとして投稿しました – SpoonNZ

    答えて

    0

    あなたが殺害され、ボタン、およびKeyDownイベントにフォーカスを残しているボタンをクリックした後、イベント。

    何がOSX上のFirefox 42.0で、ここで細かい作業をthis.disabled = true

    1

    これは、ボタンがクリックされたときに、ブラウザが自動的にボタンから集中し、体に焦点を当てるChromeで、あるため、ブラウザの動作です。しかし、Firefoxはこのような動作をしません。ボタンが無効になっているときには何も行わず、同じ要素、つまりボタンにフォーカスします。しかし、それが無効にされていない場合、それは体に焦点を当てます。

    <button>をクリックすると(デフォルト)にそれを引き起こすかどうか

    が集中 なるBUTTON要素のClicking and focusから

    は、ブラウザやOSによって異なります。そのあなたがのようなボタンを.blur()を使用する必要が作業のために

    $(document).ready(function() { 
     
        $('body').keydown(function() { 
     
        console.log('<body> keydown'); 
     
        }); 
     
    
     
        $('#button').click(function() { 
     
         this.disabled=true; 
     
         $(this).blur(); 
     
        }); 
     
    });
    .disabled { 
     
        border: 1px solid #999999; 
     
        background-color: #cccccc; 
     
        color: #666666; 
     
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
     
    <button id="button">Button</button>

    +0

    、ありがとう! –

    関連する問題