Javascript Programmatic focus事件不会导致focus事件处理程序启动?
我使用的程序焦点事件如下所示:Javascript Programmatic focus事件不会导致focus事件处理程序启动?,javascript,javascript-events,Javascript,Javascript Events,我使用的程序焦点事件如下所示: 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) {
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');
}
});
然后我将其捕获如下:
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元素设置为hidden之前重置输入
这应该可以解决您的问题。有关更多代码,请参阅网站--您必须在启动页面上输入一些内容,然后使用顶部的菜单来回翻转页面。