繁体   English   中英

jQuery调用keyup事件不起作用

[英]jQuery calling keyup event not working

需要一点帮助...

以下内容在输入数值后添加了转换后的货币标签-当我按下按键时可以正常工作(我可以看到隐藏的标签):

  $(document).ready(function(){ 
    $("input.currency-field").each(function () {
        $(this).after("<label class='currency'></label>");           
    });

    $("input.currency-field").bind("keyup", function () {
        $(this).siblings('label.currency').text($(this).val());
        $(this).siblings('label.currency').formatCurrency();
    });
});

我想在页面加载时加载转换后的值,而不是等待按下keyup。 我已经尝试在.each函数中添加标签后调用keyup事件,但是我似乎无法使其正常工作(也尝试在$之外调用$(“ input.currency-field”)。keyup()功能;

将代码放入函数中,然后在加载时以及在keyup事件中调用它。 尝试这个:

// Load
$("input.currency-field").each(function () {
    $(this).after("<label class='currency'></label>");  
    setLabelValue($(this));
});

// Keyup
$("input.currency-field").bind("keyup", function() { setLabelValue($(this)) });

function setLabelValue($el) {
    $el.siblings('label.currency').text($el.val());
    $el.siblings('label.currency').formatCurrency();
});

最好将其全部包装在一个函数中,然后将其用于绑定和准备好的文档(或者您想在其他任何地方使用它),但是您可以使用触发器进行尝试:

$("input.currency-field").trigger('keyup');

如果已设置,则应触发keyup事件。

1.将其包装在就绪处理程序中

$(document).ready(function(){
      $("input.currency-field").each(function () {
        $(this).after("<label class='currency'></label>");           
    });

    $("input.currency-field").bind("keyup", function () {
        $(this).siblings('label.currency').text($(this).val());
        $(this).siblings('label.currency').formatCurrency();
    });

});

我通常发现keyup事件在各种方面都不可靠。 我可能会转到绑定的keypress()事件,除非您专门寻找要按住的键,然后为每个动作使用不同的功能。

如果要在文档准备好时计算值,可以采用匿名函数,并使其成为“真实的”命名函数,然后在文档准备好时调用它,并将其附加到keyup / keypress事件中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM