2

私はクローム12で作業しています。私のコードは以下のとおりです。

HTML:

<input type="radio" class="tooltip" title="test1" name="group" value="1"> 1<br>        
<input type="radio" class="tooltip" title="test2" name="group" value="2"> 2<br>
<input type="radio" class="tooltip" title="test3" name="group" value="3" checked> 3<br>
<input type="text" class="tooltip" value="4" title="test4"><br>
<div class="result"> THIS SHOULD UPDATE WHEN YOU FOCUS ON ONE OF THE INPUTS </div>

JavaScript:

$('.tooltip').bind('focus', function(ev) {
 $('.result').html( this.value );
});

フィドル

フォーカスイベントをラジオボタンにバインドすることは可能ですか?代替案を提供できますか?

4

1 に答える 1

4

キーボードからフォーカスを設定した場合、ボタンをクリックしたときにのみ機能するわけではなく、元のコードはすべてのブラウザで機能します。

ボタンがクリックされたときにIEのみがフォーカスイベントをトリガーするように見えますが、Chromeはクリックイベントのみをトリガーします。いずれかをクリックしてから押すTABと、Chromeでも機能することに注意してください。

おそらくバグであり、おそらく設計上、とにかく両方を処理するだけです。

$(document).ready(function() {
    var _currentExecuting = false;
    $(".tooltip").bind("focus click", function() {
        if (!_currentExecuting) { 
            var oResult = $(".result");
            oResult.html(oResult.html() + "yoy oi " + this.value + "<br />"); 
            _currentExecuting = true;
            window.setTimeout(function() {
                _currentExecuting = false;
            }, 100);
        }
    });
});

IEブラウザーはクリックするとフォーカスイベントとクリックイベントの両方をトリガーするため、グローバルフラグを設定し、コードを実行する前にこのフラグを確認し、しばらくしてから自動クリアする必要がありました。

フィドルを更新しました。

于 2012-05-02T12:42:57.173 に答える