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之前重置输入

这应该可以解决您的问题。

有关更多代码,请参阅网站--您必须在启动页面上输入一些内容,然后使用顶部的菜单来回翻转页面。