JQueryを使用すると、.change()
または.keyup()
のいずれかが発生したときに関数を実行できます。
このようなもの。
if ( jQuery(':input').change() || jQuery(':input').keyup() )
{
alert( 'something happened!' );
}
編集
言及するのを忘れて申し訳ありません。 .change()
と.keyup()
の両方には、スコープの一部の変数が必要です。
スペースで区切ることにより、複数のイベントにバインドできます。
$(":input").bind("keyup change", function(e) {
// do stuff!
})
docs ここ 。
それが役立つことを願っています。乾杯!
ページコンテンツを動的に生成したり、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に追加されるたびに繰り返す必要があります。変更イベントとキーアップイベントをサブスクライブできます。
$(function() {
$(':input').change(myFunction).keyup(myFunction);
});
ここで、myFunction
は実行する関数です。
function myFunction() {
alert( 'something happened!' );
}
これを行う。
$(function(){
var myFunction = function()
{
alert("myFunction called");
}
jQuery(':input').change(myFunction).keyup(myFunction);
});
それがイベントの仕組みではありません。代わりに、それらが発生したときに呼び出される関数を提供します。
$("input").change(function() {
alert("Something happened!");
});
キーアップイベント入力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>
単一の関数を作成し、両方に対して呼び出します。
function yourHandler(e){
alert( 'something happened!' );
}
jQuery(':input').change(yourHandler).keyup(yourHandler);
Change()およびkeyup()イベント登録関数は元のセットを返すので、それらを連鎖させることができます。