javascript jQuery '如果.change()或.keyup()'

niknxzdl  于 2022-12-25  发布在  Java
关注(0)|答案(8)|浏览(149)

使用jQuery时,我希望在.change().keyup()出现时运行函数。
就像这样。

if ( jQuery(':input').change() || jQuery(':input').keyup() )
{
    alert( 'something happened!' );
}
    • 编辑**

很抱歉我忘了提到。.change().keyup()都需要一些变量在作用域内。

blmhpbnm

blmhpbnm1#

您可以绑定到多个事件,方法是用空格分隔它们:

$(":input").on("keyup change", function(e) {
    // do stuff!
})

文件here .

tquggr8v

tquggr8v2#

如果您曾经通过AJAX动态生成页面内容或加载内容,下面的示例确实是您应该采用的方法:
1.它可以防止在多次加载脚本(如AJAX请求)的情况下发生双重绑定。
1.绑定存在于文档的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()而不是其他方法,原因如下:

  1. $.live()$.die()已被弃用,并已从较新版本的jQuery中省略。
    1.我要么需要定义一个单独的函数(因此会使全局作用域变得混乱),并将该函数分别传递给$.change()$.keyup(),要么将相同的函数声明传递给每个被调用的函数;重复逻辑...这是绝对不能接受的。
    1.如果元素被添加到DOM中,$.bind()不会在创建元素时动态绑定到这些元素,因此,如果绑定到:input,然后向DOM添加输入,该绑定方法没有附加到新的输入,然后您需要显式地取消绑定,然后重新绑定到DOM中的所有元素(否则,绑定将被复制)。每次向DOM添加输入时,都需要重复此过程。
w8biq8rn

w8biq8rn3#

做这个。

$(function(){
    var myFunction = function()
    {
        alert("myFunction called");
    }

    jQuery(':input').change(myFunction).keyup(myFunction);
});
o4tp2gmn

o4tp2gmn4#

您可以订阅更改和键启动事件:

$(function() {
    $(':input').change(myFunction).keyup(myFunction);
});

其中myFunction是您要执行的函数:

function myFunction() {
    alert( 'something happened!' );
}
jckbn6z7

jckbn6z75#

这不是事件的工作方式,相反,你给予它们一个函数,当它们发生时,你就可以调用它。

$("input").change(function() {
    alert("Something happened!");
});
jckbn6z7

jckbn6z76#

编写一个函数并为它们两个调用它。

function yourHandler(e){
    alert( 'something happened!' );        
}
jQuery(':input').change(yourHandler).keyup(yourHandler);

change()和keyup()事件注册函数返回原始集合,因此可以将它们链接起来。

oprakyz7

oprakyz77#

keyup事件输入jquery
For Demo

$(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>
wn9m85ua

wn9m85ua8#

下面是我如何使用Jquery解决这个问题的

$("#c_debit").on("keyup change", function(e) {
 let debitValue = $("#c_debit").val();
 if(debitValue != 0)
 {
  $( "#c_credit" ).prop( "disabled", true );
 }
 else{
  $( "#c_credit" ).prop( "disabled", false );
 }
})

相关问题