jquery - 如何触发 keyup 事件并传递 key ?

标签 jquery bdd

我有一个字段可以在您键入时“更正”自身。我们编写了一些代码,可以在按下箭头键时阻止此功能:

handleKeyUp: function(e) {
    var arrowKeys = _.range(37, 41),
        key = e.which;

    // allow user to move cursor by keyboard
    if ($.inArray(key, arrowKeys) < 0) {
        this.removeInvalidCharacters();
    }
},

我们想为此编写一个单元测试;但是,我们不知道如何通过 $input.trigger('keyup') 传递 e.which。我知道触发器的第二个参数允许我们发送“额外选项”;但是,这只是将更多值传递给 handleKeyUp 函数。有想法吗?

最佳答案

试试这个 -

var e = $.Event("keyup");
e.which = 37; 
$input.trigger(e);

http://api.jquery.com/category/events/event-object/

As of jQuery 1.6, you can also pass an object to jQuery.Event() and its properties will be set on the newly created Event object.

// Create a new jQuery.Event object with specified event properties.
var e = jQuery.Event("keydown", { keyCode: 64 });

// trigger an artificial keydown event with keyCode 64
jQuery("body").trigger( e );

关于jquery - 如何触发 keyup 事件并传递 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16348483/

相关文章:

javascript - Jquery .data(),如何检索具有匹配值的元素?

javascript - 如何提前关闭来自 php 的 ajax 调用?

node.js - Mocha (子)套件错误上的保释套件,但下一步继续吗?

automated-tests - 使用SpecFlow进行端到端回归测试

javascript - CSS :x scroll limit

javascript - 如何根据提交时的每个标签获取多选 optgroup 值?

javascript - JQuery 多次提取字符串

java - 有没有办法操作 Cucumber 数据表中的值?

javascript - jQuery 插件 TDD 起点

java - 在执行功能文件之前删除范围报告html文件的方法?