0

需要一点帮助...

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

  $(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()功能;

4

4 回答 4

2

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

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

如果它已设置,这应该触发 keyup 事件。

于 2012-08-28T16:22:47.433 回答
2

将代码放入一个函数中,然后在加载和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();
});
于 2012-08-28T16:20:56.540 回答
1

我通常发现 keyup 事件以各种方式不可靠。我可能会转移到要绑定的 keypress() 事件,除非您专门寻找要按住的键,然后为每个操作释放不同的功能。

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

于 2012-08-28T16:24:13.727 回答
1

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

$(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();
    });

});
于 2012-08-28T16:20:11.027 回答