在textarea中键入时禁用javascript函数

在textarea中键入时禁用javascript函数,javascript,html,function,jquery,keyboard-events,Javascript,Html,Function,Jquery,Keyboard Events,我有一个photo galery,具有以下简单功能,可以使用键盘上的箭头键导航到上一张/下一张照片: $(function() { var navEnabled = true; $(document).keyup(function(e) { if (navEnabled) { switch(e.keyCode) { case 37 : window.location = $('.prev').attr('h

我有一个photo galery,具有以下简单功能,可以使用键盘上的箭头键导航到上一张/下一张照片:

$(function() {
    var navEnabled = true;

    $(document).keyup(function(e) {
        if (navEnabled) {
            switch(e.keyCode) {
                case 37 : window.location = $('.prev').attr('href'); break;
                case 39 : window.location = $('.next').attr('href'); break;
            }
        }
    });

    $('#comment_area').bind('focus', function (event) {
        navEnabled = false;
    }).bind('blur', function (event) {
        navEnabled = true;
    });
});

在每张照片下面,我有一个html textarea元素(!在页面加载时通过AJAX加载!),id为#comment_area,用于对照片留下评论,我正在寻找一种解决方案,在键入时禁用键盘照片导航,然后再次打开。上面的代码似乎不起作用,我想这是因为textarea元素是通过AJAX加载的。我试图将.bind函数代码移动到AJAX请求中,这样它就可以知道#comment_区域id,但是navEnabled变量是未知的。

不使用
not()
将其绑定到特定元素怎么样


不使用
not()
将其绑定到该特定元素如何:

使用

让我假设将Ajax内容加载到的容器元素称为
#Ajax\u container
。然后你可以使用:

$('#ajax_container').on( 'focus', '#comment_area', function (event) {
    navEnabled = false;
}).on( 'blur', '#comment_area', function (event) {
    navEnabled = true;
});
您使用的是什么版本的jQuery?此代码适用于1.7+版本,需要针对旧版本进行调整。

请使用

让我假设将Ajax内容加载到的容器元素称为
#Ajax\u container
。然后你可以使用:

$('#ajax_container').on( 'focus', '#comment_area', function (event) {
    navEnabled = false;
}).on( 'blur', '#comment_area', function (event) {
    navEnabled = true;
});

您使用的是什么版本的jQuery?此代码适用于1.7+版本,需要针对较旧版本进行调整。

乐意效劳。很高兴这有帮助!我的荣幸。很高兴这有帮助!