jQueryを使用して、.change()
または.keyup()
が発生したときに関数を実行したいと思います。
このようなもの。
if ( jQuery(':input').change() || jQuery(':input').keyup() )
{
alert( 'something happened!' );
}
編集
申し訳ありませんが、言及するのを忘れました。両方とも.change()
、.keyup()
範囲内にある変数のいくつかが必要です。
jQueryを使用して、.change()
または.keyup()
が発生したときに関数を実行したいと思います。
このようなもの。
if ( jQuery(':input').change() || jQuery(':input').keyup() )
{
alert( 'something happened!' );
}
編集
申し訳ありませんが、言及するのを忘れました。両方とも.change()
、.keyup()
範囲内にある変数のいくつかが必要です。
need some of the variables to be in-scope
イベントの変数、またはこれらのイベントハンドラーを登録するときに使用している変数を意味しますか?イベントパラメータ(通常はe
)でイベント変数を取得します。そうでない場合は、イベントが発生するまでウィンドウレベルまたは要素のデータに保持するか、クロージャを確認する必要があります。
回答:
複数のイベントをスペースで区切ることにより、それらにバインドできます。
$(":input").on("keyup change", function(e) {
// do stuff!
})
ここのドキュメント。
それがお役に立てば幸いです。乾杯!
ページコンテンツを動的に生成したり、AJAXを介してコンテンツを読み込んだりする場合は、次の例が実際に行うべき方法です。
body
はドキュメント上に存在するため、追加、移動、削除、および再追加された要素に関係なく、body
指定されたセレクターに一致するすべての子孫は適切なバインドを保持します。コード:
// Define the element we wish to bind to.
var bind_to = ':input';
// Prevent double-binding.
$(document.body).off('change', bind_to);
// Bind the event to all body descendants matching the "bind_to" selector.
$(document.body).on('change keyup', bind_to, function(event) {
alert('something happened!');
});
注意してください!私はの使用を作ってるんだ$.on()
し、$.off()
むしろ他の方法よりも、いくつかの理由のために:
$.live()
および$.die()
は非推奨であり、jQueryの最新バージョンからは省略されています。$.change()
に$.keyup()
個別に渡すか、呼び出された各関数に同じ関数宣言を渡す必要があります。ロジックを複製しています...これは絶対に受け入れられません。$.bind()
作成時に要素に動的にバインドされません。したがって:input
、DOMにバインドしてから入力を追加した場合、そのバインドメソッドは新しい入力にアタッチされません。次に、明示的にバインドを解除してから、DOM内のすべての要素に再バインドする必要があります(そうしないと、バインドが複製されてしまいます)。このプロセスは、入力がDOMに追加されるたびに繰り返す必要があります。var bind_to = ':input';
という変数作成bind_to
など、すべての入力タイプをつかむために選択されinput
、textarea
そしてbutton
。
var bind_to = '#myInput';
ajax呼び出しはとにかく2回実行されます。なぜ???
これを行う。
$(function(){
var myFunction = function()
{
alert("myFunction called");
}
jQuery(':input').change(myFunction).keyup(myFunction);
});
change()
keyup()
ラップされたセットを返すので、それを連鎖させることができます。
変更イベントとキーアップイベントをサブスクライブできます。
$(function() {
$(':input').change(myFunction).keyup(myFunction);
});
myFunction
実行したい関数はどこですか:
function myFunction() {
alert( 'something happened!' );
}
単一の関数を作成し、両方に対して呼び出します。
function yourHandler(e){
alert( 'something happened!' );
}
jQuery(':input').change(yourHandler).keyup(yourHandler);
change()およびkeyup()イベント登録関数は元のセットを返すため、連鎖させることができます。
キーアップイベント入力jquery
$(document).ready(function(){
$("#tutsmake").keydown(function(){
$("#tutsmake").css("background-color", "green");
});
$("#tutsmake").keyup(function(){
$("#tutsmake").css("background-color", "yellow");
});
});
<!DOCTYPE html>
<html>
<title> jQuery keyup Event Example </title>
<head>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
</head>
<body>
Fill the Input Box: <input type="text" id="tutsmake">
</body>
</html>