.blur() 与 .on() ,后者最好使用 ( 当前 )
.blur() vs .on() , which is better to use ( currently )
我正在做我的第一个表单计算,这是我在最后一天研究并提出的jQuery。
这只是从我发现让一切正常工作的情况来看,顺便说一句,不一定是最好的方法。我的老板希望我使用.blur()
而不是.on()
,但是我觉得我有更多的控制权,可以通过能够使用键控和单击表单输入进行计算来.on()
。
有人可以更新我在这种情况下哪个更好吗?.on()
是否被折旧并且更好地使用.blur()
或者在这种情况下它们都可以吗?另外,如果模糊更好用,有人可以告诉我如何重新做我的功能/模糊,这样我就可以走在正确的道路上吗?谢谢!
http://jsfiddle.net/V5hrY/4/
$(".ticket input").on("keyup click", function(){
//input changes Individual total
var thisTotal = $(this).closest(".info").find('.total p span');
var thisPrice = $(this).closest(".info").find('.price p span');
var thisInput = $(this).closest(".info").find('.ticket input');
thisTotal.html(thisPrice.html() * thisInput.val());
//input changes Grand total
var sum = 0;
$('.total p span').each(function(){
sum += parseFloat($(this).text());
$('.gTotal span').html(sum);
});
});
使用 .blur()
(或"blur"事件侦听器(的问题是,小计仅在您远离字段时才更新,因此更新本身不是"实时"的。 我建议您坚持收听点击和键入事件,以便在旅途中更新小计。
如果要使用模糊,只需更改此行:
$(".ticket input").on("keyup click", function(){
到这一行:
$(".ticket input").on("blur", function(){
您可以在使用.blur()
侦听器的这个小提琴 (http://jsfiddle.net/teddyrised/V5hrY/7/( 中看到,您可以看到当您更改数量时,小计不会立即更新,而只会在您将注意力从字段上移开时更新。
p/s:就像我在评论中提到的,使用.on()
是正确的方法。事实上,它的对应项(但不太等价(、.live()
和.delegate()
已被弃用。我绝对建议使用.on()
而不是.blur()
:)你的直觉实际上是正确的;)
附带说明一下,如果要将事件侦听器绑定到动态添加的元素,我建议改用以下命名法:
$(document).on("keyup click", ".ticket input", function(){
或者,如果您想收听模糊事件:
$(document).on("blur", ".ticket input", function(){
您可以将 .on(( 与许多不同的事件一起使用,包括 .blur((。因此,您实际上可以使用:
$(document).on("blur", ".ticket input", function(){
});
您可以称之为"最佳实践"。但在这种情况下,我认为 keyup 很好,所以我建议:
$(document).on("keyup", ".ticket input", function(){
});
祝你好运
.blur(( 不适用于动态添加元素,并且需要在 .on('blur'( 工作时在 ready 函数中声明。看一看
$(function(){
$('#elm').blur(function(){ alert('Blured') });
// assume element button with id button is already present in html
$('#button').click(function(){
$('body').append('<input type="text" id="elm" />'); // blur event above will not work on input with id elm
});
});
$(document).on('blur','#elm',function(){ alert('blured') }); // this will work for dynamic added input field
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 播放当前视频时如何停止其他视频?JavaScript
- 如何在JavaScript中延长当前日期
- Brightcove获取/显示HTML中的当前视频标题和描述
- 将当前时间添加到我的页面上的特定部分
- 使用当前日期生成随机id
- 复制当前url按钮-Javascript
- I'我设计了一个下拉菜单,onclick会出现,而on blur会消失
- window.on.scroll事件未启动
- Href:当前DIV中的目标ID
- 为什么 CSS :active on link 不会突出显示当前页面链接
- 使用 javascript on单击以设置当前所选样式单选按钮
- 使用on()方法获取当前对象
- .blur() 与 .on() ,后者最好使用 ( 当前 )
- Net套接字-确定在套接字on("data")下当前正在响应哪个请求
- 使当前URL中的链接CSS不同(Ruby on Rails)
- 在Ruby on Rails 3应用程序中查看并与您网站上当前的在线用户交谈
- 在 for 循环中创建 .on() 元素时,如何使 .on(函数) 调用当前索引
- 套接字.Nodejs CoffeeScript在socket.on中获取socket和当前继承的类变量
- ruby on rails 3-找出当前显示在javascript幻灯片中的照片