javascript - jquery javascript 覆盖/扩展事件

标签 javascript jquery events

我有一个带有事件集的元素,例如

<input type="text" id="txt" onkeyup="javascript: alert('keyup');" />

现在,我想拦截此事件并运行除默认脚本之外的其他脚本。 我写了以下代码:

jQuery(document).ready(function(){

var old = $("#txt").keyup;

$("#txt") 
     .unbind('keyup')
     .attr('onkeyup', '')
     .each(function() { this.onkeyup = null; });

$("#txt").keyup(function(event){

    alert("before old call");
    //old.call($(this));
    alert("after old call");
});

});

但它并没有像我预期的那样工作。有人知道如何让它工作吗?

fiddle 链接:http://jsfiddle.net/p5JeA/

如果输入的 keyup 事件不是内联的,而是使用 jQuery 绑定(bind)设置的怎么办? 我想覆盖/扩展默认行为,我不想更改基本代码。

最佳答案

这是一个工作 fiddle :http://jsfiddle.net/mrchief/p5JeA/2/

var old = $("#txt")[0].onkeyup;

$("#txt")[0].onkeyup = null; // or function () {};
// or $("#txt").removeAttr('onkeyup');

jQuery 未包含在资源中。另外,我注释掉了一些您不需要的部分。

关于javascript - jquery javascript 覆盖/扩展事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7030872/

相关文章:

javascript - Chrome devtools 无法模拟推送事件

javascript - 计算Javascript中两个日期之间的工作日(节假日除外)

java - GAE : Slow delayed requests

jQuery/JavaScript 字符串替换特定单词及其后的所有字符

javascript - jQuery 取消绑定(bind)范围内声明的事件

javascript - 注入(inject) HTML5 数据属性与注入(inject) javascript 数据结构

javascript - 正则表达式 - 查找具有特定字符串的所有评论

javascript - 除非在一对双引号之间,否则将字符串拆分为带有空格的单词

android - 如何在第二个 Activity 中没有任何操作时返回到主要 Activity

javascript - 当父 div 的位置为 :relative 时,pageY 计算错误