javascript - 带有 .bind() 的 jQuery .keyup() 不起作用

标签 javascript jquery ajax

我正在使用 jQuery 代码通过回车键触发输入字段。我在另一个 View 中使用了代码,它工作得很好。在新的观点中,不知何故它根本不起作用。 keyup 被触发但 .bind() 函数未被调用。 这是 HTML 触发器:

<div class="form-group">
   <h3>Customers</h3>
   <input class="form-control" id="searchNew" placeholder="Search" name="searchNew" autofocus="" value="@form("searchValue").value">
</div>

这是 jQuery 代码:

$('#searchNew').bind("enterKey", function(e){
    console.log("Test2");
    $.ajaxSetup({
        beforeSend: function(){
            $('.loading').fadeIn();
        },
        complete:function(){
            $('.loading').fadeOut();
        }
    });
    $.ajax({
        type : 'POST',
        url : '@routes.Application.searchLicensesAdmin()',
        data : $('#search').serialize(),
        success : function (data) {
            $('#license-table').html(data);
            return false;
        },
        error : function (data) {
            console.log("Error");
        }
    });
    return false;
});
$('#searchNew').keyup(function(e){
    if(e.keyCode == 13){
        console.log("Test1");
        $(this).on("enterKey");
    }
});

Test1 被触发并显示在控制台中,但 Test2 甚至根本没有被触发。所以问题不在于 ajax 调用,而在于 .bind()。这可能是它不起作用的愚蠢原因,但我无法弄清楚。 jQuery 包含在两个文档中。

最佳答案

你需要 $(this).trigger('enterKey')

.bind().on() 做的几乎相同,尽管 .bind() 从版本 3 开始被弃用(所以不要使用它;))。

语句 $(this).on('enterKey') 只是注册了一个新的事件监听器,带有一个空的/未定义的回调

关于javascript - 带有 .bind() 的 jQuery .keyup() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44520166/

相关文章:

javascript - 从 jQuery AJAX 调用返回的 HTML 表现得很奇怪

php - 向 AJAX 调用提供结果时 print_r 和 echo 有什么区别?

Jquery 切换事件与复选框值混淆

javascript - 更改事件按钮的图标的单选按钮应为 OutlineIcon 或 FillledIcon

javascript - 等待 Javascript 函数完成执行并从中获取响应

javascript - onClick on commandLink 设置该链接所附图像的 css

jquery - 如何将自动完成功能连接到文本框?

php - 多个离线网页同步

javascript - 如何使用嵌套数据通过 d3.chart 制作多个图表

javascript - 高阶函数导致 chrome 扩展中的不安全评估