程序性焦点事件不会引发焦点事件处理程序
Programatic focus event does not cause focus event handler to fire?
我正在使用一个程序化焦点事件,如下所示:
resetInput: function (array, checkbox) {
_.each(array, function (val) {
$A.log('input cleared, focussed, blurred for ' + val.id)
val.value = '';
val.focus();
val.blur();
});
if (checkbox) {
checkbox.checked = true;
}
}
然后我捕获如下:
applyEL: function (input_element, label_element) {
var self = this,
$input_element = $(input_element);
$input_element.on("blur", function () {
$A.log('Blur Event detected:');
if (input_element.value === '') {
$A.log(': with input blank');
$A.toggleClass(input_element, 'toggle_border_show');
$A.toggleClass(label_element, 'toggle_label_show');
$A.animate(label_element, {property: 'fontSize', time: self.P.speed});
}
});
$input_element.on("focus", function () {
$A.log('Focus Event detected - ');
if (input_element.value === '') {
$A.log(' - with input blank:');
$A.toggleClass(input_element, 'toggle_border_obscure');
$A.toggleClass(label_element, 'toggle_label_obscure');
}
});
当我使用键盘手动启动焦点和模糊事件监听器时,它们工作得很好。
但是程序化版本不起作用。
我注意到我的输入没有重置(事件处理程序没有正确启动),并添加到日志中以确定这一点。
注意:
我还从控制台启动了焦点和模糊事件处理程序,但没有看到任何效果。
我的人,
如果元素的显示设置为"无",则无法对其使用聚焦和模糊事件。(看起来像是一个父元素在设置这个)。
我建议您在将body元素设置为隐藏之前重置输入。
这应该能解决你的问题。
相关文章:
- keyup事件处理程序更改焦点不适用于快速键入
- 提示使用服务器端事件处理程序激活JavaScript
- 将事件处理程序绑定到任何可能的事件
- 正在将事件处理程序添加到不存在的类
- dropdown.js中的复杂事件处理
- 在循环中附加事件处理程序时出现浏览器性能问题
- 在同一个javascript事件处理程序中调用不同的函数
- 复选框,然后单击事件处理
- 有没有一种方法可以让内联事件处理程序在元素创建后立即执行
- 检查事件处理程序参数
- 实现延迟的jquery更改事件处理程序
- 如何使用Node.js在JavaScript模块文件之间使用事件处理程序
- 如何使jQuery的“bind”或“on”事件处理程序幂等
- 带有参数的Javascript事件处理程序
- 程序性焦点事件不会引发焦点事件处理程序
- 如何处理单击和焦点事件以切换 .
- 在处理焦点事件时触发单击
- 我怎么能只专注于一个“;输入:文本“;而不触发其绑定的焦点事件处理程序
- 处理容器'没有分配点击和焦点事件的一切
- IE 焦点事件处理程序延迟