Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 不是工作类。添加新输入后为数字。我该怎么办?_Javascript_Jquery - Fatal编程技术网

Javascript 不是工作类。添加新输入后为数字。我该怎么办?

Javascript 不是工作类。添加新输入后为数字。我该怎么办?,javascript,jquery,Javascript,Jquery,为什么添加新输入后,js代码中的类.numeric(正常数字格式)不起作用 普通数字格式的这种方式是正确的吗? 你有什么建议? 我不想使用插件。 $("input:text.numeric").keyup(function () { $val = $(this).val().match(/[0-9]/g).reverse().join("").match(/[0-9]{1,3}/g).join(",").match(/./g).reverse().join(""); $(thi

为什么添加新输入后,js代码中的类
.numeric
(正常数字格式)不起作用
普通数字格式的这种方式是正确的吗?
你有什么建议?
我不想使用插件。

$("input:text.numeric").keyup(function () {
    $val = $(this).val().match(/[0-9]/g).reverse().join("").match(/[0-9]{1,3}/g).join(",").match(/./g).reverse().join("");
    $(this).val($val)
})

关于

如果在加载完成后向页面添加了内容,则需要在脚本上使用live()函数,使它们能够处理新数据

如果您执行以下操作:

$('#container').append('<div class="clickme">The text goes here</div>');
…它们都被视为添加到页面中


使用live(),您的代码将变成:

$("input:text.numeric").live('keyup', function () {
    $val = $(this).val().match(/[0-9]/g).reverse().join("").match(/[0-9]{1,3}/g).join(",").match(/./g).reverse().join("");
    $(this).val($val)
});

请在此处阅读更多信息:

您需要一个经得起未来考验的事件观察者。由于
keyup
绑定已分配给现有节点,因此以后创建的任何节点都不会绑定到该事件。您需要使用
live
delegate

改变

$("input:text.numeric").keyup(function () {

delegate()
live()
对资源更友好,但您需要提前了解家长。在你的例子中,我推荐它

工作演示:

使用该方法将处理程序绑定到
.column
容器

示例:

这样,无论何时将
.column
中的任何
“input.numeric:text”
元素添加到DOM中,都将调用处理程序

我还稍微改变了一下选择器。对我来说似乎更容易理解

$("input:text.numeric").keyup(function () {
$("input:text.numeric").live('keyup',function () {
$('.find_input').delegate('input:text.numeric','keyup',function () {
$('.column').delegate("input.numeric:text",'keyup',function () {
    $val = $(this).val().match(/[0-9]/g).reverse().join("").match(/[0-9]{1,3}/g).join(",").match(/./g).reverse().join("");
    $(this).val($val)
});