2011-06-15 6 views
0

フォームの選択フィールドを複数のアクションにバインドするjquery関数があります。これは、変更とキーアップの両方にバインドされるため、マウスとキーボードの両方のクリックがキャプチャされます。jquery .bindはページロード時の実行を防止します

$(document).ready(function(){ 
    $('#user_id').bind('change keyup',function() { 
    calculateAmounts(); 
    }).change(); 
}); 

これは完全に機能します。

しかし、calculateAmounts()関数は、changeおよびkeyup関数で実行するだけでなく、ページを最初にロードするときにも呼び出されます。ページが最初に読み込まれたときにこのコードが実行されないようにしたいと思います。

答えて

2

(#user_idが入力フィールドであることをconsederationに取って)これを試しますchange/keyupイベントハンドラを呼び出します。 .change()呼び出しを削除すると、ページが読み込まれたときにそのイベントはトリガーされません。

$(document).ready(function(){ 
    $('#user_id').bind('change keyup',function() { 
    calculateAmounts(); 
    }); 
}); 
+0

ありがとうございます。 – JonoB

0

、あなたが.change(呼び出すときは、$( '#1のuser_id')要素の上に)変更イベントをトリガしている

$(document).ready(function(){ 
    var yourVAL = $("#user_id").val(); 
    $('#user_id').bind('change keyup',function() { 
    if($("#user_id").val() != yourVAL){ 
     calculateAmounts(); 
    } 
    }).change(); 
}); 
関連する問題