需要一些帮助...
以下内容在输入数字值后添加转换后的货币标签 - 按下按键时工作正常(我可以看到隐藏的标签):
$(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();
});
});
我想在页面加载时加载转换后的值,而不是等待按下键盘。我试图在.each函数中添加标签后调用keyup事件,但我似乎无法让它工作(也尝试调用$(“input.currency-field”)。keyup()在...之外功能;
答案 0 :(得分: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();
});
答案 1 :(得分:2)
最好将它全部包装在一个函数中,然后将它用于绑定和文档就绪(或者你想要使用它的任何地方),但是你可以使用触发器来执行你想要做的事情:
$("input.currency-field").trigger('keyup');
这应该触发keyup事件,前提是它已被设置。
答案 2 :(得分: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();
});
});
答案 3 :(得分:1)
我经常发现键盘事件以各种方式不可靠。我可能会转移到一个keypress()事件来绑定,除非你专门寻找要按住的键然后为每个动作释放不同的功能。
如果你想在文档准备就绪时计算出值,可以使用匿名函数,并使其成为“真正的”命名函数,然后在文档准备就绪时调用它,并将其附加到keyup /按键事件。