作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图使用 jQuery 创建一个可编辑的表格。
作为它的一部分,我显示了一个 td 的文本区域 onClick
并且在该文本区域的模糊处我隐藏了它。
问题是当我继续点击其他 td 时,文本区域模糊会以指数方式触发。文本区域显示正确唯一的问题是异常触发计数onBlur
。
这一定是我设计中的一个流程。请引导我走上正确的道路。
代码
var $td = $('td')
$td.on('click', function () {
$(this).addClass('selected');
var $self = $(this);
var offset = $(this).offset();
var height = $(this).outerHeight();
var width = $(this).outerWidth();
var value = $(this).text();
$('.input').show().css({
top: offset.top,
left: offset.left,
height: height,
width: width
}).val(value).focus().on('blur', function () {
console.log('triggerd')
$self.removeClass('selected');
$(this).hide();
});
});
最佳答案
问题是因为您每次单击任何 TD 时都会添加 .on('blur')
事件。解决方案是改为将其更改为 .one('blur')
。这样事件处理程序将只触发一次然后被删除。这样每次你点击一个TD,它只会触发一次模糊事件
关于javascript - On blur 触发多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24422064/
我是一名优秀的程序员,十分优秀!