首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将原生js事件对象转换为jquery事件对象

将原生js事件对象转换为jquery事件对象
EN

Stack Overflow用户
提问于 2010-12-19 19:08:20
回答 3查看 4.3K关注 0票数 4

我希望将本机JavaScript事件对象转换为jQuery事件对象。

实际上,这就是问题所在:我通过jQuery将一个事件处理程序绑定到documents keyup事件,页面上有一些文本框,keyup事件处理程序通过内联JavaScript与之绑定。

问题是,当触发文本框的事件处理程序时,文档的事件处理程序也会触发,因为事件“冒泡了”我可以修改由内联JavaScript绑定的事件处理函数,但不能修改该行本身。

我正在寻找的是一个跨浏览器的,一种取消事件冒泡的方法,这就是为什么我想把它转换成一个jQuery对象。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-12-19 21:14:19

如果您想要做的只是防止事件冒泡,那么没有jQuery就很容易做到。不要害怕走出jQuery的世界。这并不像有些人希望你相信的那样复杂。

代码语言:javascript
复制
function stopEventPropagation(evt) {
    if (typeof evt.stopPropagation != "undefined") {
        evt.stopPropagation();
    } else {
        evt.cancelBubble = true;
    }
}

// Example
document.getElementById("yourInputId").onkeyup = function(evt) {
    evt = evt || window.event;
    stopEventPropagation(evt);
};
票数 7
EN

Stack Overflow用户

发布于 2011-11-12 00:04:05

查看jQuery的代码(我查看了1.7,但我认为它在此之前也是可用的),可以很容易地使用以下命令从本机事件创建jQuery事件:

代码语言:javascript
复制
var jQueryEvent = jQuery.Event(event);
票数 8
EN

Stack Overflow用户

发布于 2010-12-19 19:18:29

你可以在页面加载后立即用jQuery删除onclick或任何内联的eventhandler属性,例如:

代码语言:javascript
复制
$(document).ready(function () {

  $('#someInput').removeAttr('onclick');

});

然后附加事件处理程序以自定义行为。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4482645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档