3

イベントをテキスト要素に動的にバインドしています。これは私のコードです:

<input type="text" id="myTxt" />

<script type="text/javascript">
    function attachEvent1(element){
        element.keyup(function(){
            console.log("Event:"+event.keyCode);
        });
    }
    function attachEvent2(element){
        element.keyup(function(){
            console.log("Value:"+this.value);
        });
    }   
    attachEvent1($('#myTxt'));
    attachEvent2($('#myTxt'));      
</script>

必要なのは、2 番目のイベント ハンドラー (attachEvent2 によってアタッチされたもの) が最初に呼び出されるようにすることです。jQueryで可能ですか?

4

1 に答える 1

0

このようなものはどうですか:

function handler1()
{
  console.log("Event:"+event.keyCode);
}

function handler2()
{
  console.log("Value:"+this.value);
}

function attachEvent1(element)
{
  element.keyup(handler1);
}

function attachEvent2(element)
{
  element.unbind('keyup', handler1);
  element.keyup(handler2);
  element.bind('keyup', handler1);
}   

attachEvent1($('#myTxt'));
attachEvent2($('#myTxt'));

より手の込んだものが必要な場合は、ハンドラーのリストを保持し、ループなどで再バインドを行うことができますが、イベントを再バインドするというこの基本的な考え方には、望ましい効果があります。

于 2012-12-06T03:56:42.363 に答える