好吧,所以我有一个输入框,我需要在每次更改时都做一些事情,我在为鼠标粘贴做这件事时遇到了麻烦。这是我的代码
$("#attack-navy"+unit.ID+"-number").bind('paste', function(){
alert("paste detected");
$("#attack-max-capacity").text(getMaxCapacity());
});
现在输入的getMaxCapacity()函数返回数字* 30;
以下是情景
1:我粘贴3,它不会改变(我仍然看到警报)
2:然后当我粘贴5时,它将是90(3 * 30)
3:然后,如果我粘贴10将是150(5 * 30),依此类推。
我认为它在粘贴实际发生之前就做了处理程序。关于我能做什么的任何想法? (.change将无效,必须在粘贴后立即发生)
答案 0 :(得分:45)
您应该处理input
和propertychange
事件
Demo
答案 1 :(得分:3)
你是对的。粘贴事件在输入值更改之前触发。尝试在超时时包装处理程序:
setTimeout(function() { $("#attack-max-capacity").text(getMaxCapacity()); }, 0);
答案 2 :(得分:1)
用.live替换绑定事件,它应该可以工作,如下所示:
$("#attack-navy"+unit.ID+"-number").live('paste', function(){
alert("paste detected");
$("#attack-max-capacity").text(getMaxCapacity());
});