当前位置: 首页 > 面试题库 >

是否可以在动态添加的文本输入中全局捕获按键按下状态?

艾浩广
2023-03-14
问题内容

我使用以下全局jQuery来显示和隐藏装载div$.ajax电话:

$(document).ajaxStart(function(){
    $("#loading").show();
}
$(document).ajaxStop(function(){
    $("#loading").hide();
}

这可以正常工作,但是我不想显示自动完成的加载div,所以我添加了以下内容:

$("input[type=text]").keydown(function(){
    if($(this).hasClass('ui-autocomplete-input')) {
        window.suppressGlobal = true;
    }
});

然后,要重置suppressGlobal“正常” $.ajax通话,请执行以下操作:

var origAjax = $.ajax;
$.ajax = function() {
    if (window.suppressGlobal) {
        arguments[0].global = false;
    }
    origAjax.apply(this, arguments);
    window.suppressGlobal = false;
};

所有这些对于使用页面加载构造的文本输入都很好。但是,在几种情况下,文本输入是使用jQuery / Javascript在客户端动态插入的,在这种情况下
keydown事件不会绑定到全局函数。我也尝试过on

$("input[type=text]").on('keydown', function(){
    if($(this).hasClass('ui-autocomplete-input')) {
        window.suppressGlobal = true;
    }
});

但这也不起作用。有什么方法可以使我全局捕获keydown事件,而不管何时添加文本输入?我可以以某种方式全局捕获到DOM的文本输入的附加内容,然后附加事件处理程序吗?


问题答案:

您将必须使用$(document).on()动态创建的控件。

jsfiddle:http :
//jsfiddle.net/G9qJE/

您也可以使用: $('body').on

说明:分配事件后,该事件仅分配给页面上当前存在的元素。如果您以后再讨论其他元素,那么没有什么值得关注的,也可以通过监视这些元素来实现。这就是为什么您需要在文档级别上放置一些东西的原因,这些东西知道事件以及您想要将其应用到的元素,以便它可以监视匹配的任何新元素并将该事件也应用到它们。

 $(document).on("keydown", "input[type=text]", function() { 
        if($(this).hasClass('ui-autocomplete-input')) {
            window.suppressGlobal = true;
        }

    });


 类似资料:
  • 问题内容: 我用Java制作了一个简单的媒体播放器,但是我 想记录诸如+的全局按键,以暂停/恢复当前正在播放的音乐, 而JFrame没有聚焦, 但是由于JVM安全问题,似乎无法实现。 我遇到了JNativeHook,但是我只想为Windows实现我自己的方法。请建议如何做以及从哪里开始? 问题答案: Jintellitype是一个比较简单的解决方案。 https://code.google.com

  • 问题内容: 是否可以动态更改全局样式表? 编辑:目的是允许用户选择他喜欢的样式。 在Angular 1中,我能够将控制器包装在head标签周围并在其中使用绑定。 下面的示例(简化代码): index.html AppController 在Angular 2中有可能吗? 问题答案: 我最终使用了Igor在这里提到的DOCUMENT令牌。 从那里,我可以将href换成样式。 HTML: TS:

  • 问题内容: 我正在尝试提供一组可以重复或删除的输入。 我发现并使用了以下方法的组合:https : //jsfiddle.net/69z2wepo/36745/ 并且(因为上面的代码无法处理删除操作):https : //codepen.io/lichin-lin/pen/ MKMezg 我可能不需要指向一个特定的输入,因为在我的界面中,您应该始终只添加一个新的(如果之前的一个已填充)(我将在稍后

  • 谁能帮我知道哪里出了问题?还有其他方法吗?提前感谢!

  • 我需要捕获Android中的电源键按下。我尝试了以下方法 但使用此代码按下电源键控制不进入onKeyDown方法。 长按电源键时,会调用此方法。但我需要的是,我需要在单次按压时捕捉到这一事件 有人能帮忙吗?

  • 我有一个3D看按钮在正常状态下,与3DP在右侧和底部,当我按下按钮,我希望它看起来3D与3DP在左侧和顶部,这一次。但是,当我更改项形状的按下状态的填充值时,即使按钮处于正常状态/未按下,填充值的更改也会显示出来。 我的按钮看起来是这样的: 我也希望它按下时也是这样: btn_gray1.xml btn_gray2.xml btn_gray.xml