我希望将本机JavaScript事件对象转换为jQuery事件对象。
实际上,这就是问题所在:我通过jQuery将一个事件处理程序绑定到documents keyup事件,页面上有一些文本框,keyup事件处理程序通过内联JavaScript与之绑定。
问题是,当触发文本框的事件处理程序时,文档的事件处理程序也会触发,因为事件“冒泡了”我可以修改由内联JavaScript绑定的事件处理函数,但不能修改该行本身。
我正在寻找的是一个跨浏览器的,一种取消事件冒泡的方法,这就是为什么我想把它转换成一个jQuery对象。
发布于 2010-12-19 21:14:19
如果您想要做的只是防止事件冒泡,那么没有jQuery就很容易做到。不要害怕走出jQuery的世界。这并不像有些人希望你相信的那样复杂。
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);
};发布于 2011-11-12 00:04:05
查看jQuery的代码(我查看了1.7,但我认为它在此之前也是可用的),可以很容易地使用以下命令从本机事件创建jQuery事件:
var jQueryEvent = jQuery.Event(event);发布于 2010-12-19 19:18:29
你可以在页面加载后立即用jQuery删除onclick或任何内联的eventhandler属性,例如:
$(document).ready(function () {
$('#someInput').removeAttr('onclick');
});然后附加事件处理程序以自定义行为。
https://stackoverflow.com/questions/4482645
复制相似问题