[英]Cant call jQuery POST request from Javascript's addEventListener method
[英]jQuery equivalent of JavaScript's addEventListener method
我正在尝试找到与此 JavaScript 方法调用等效的 jQuery :
document.addEventListener('click', select_element, true);
我已经做到了:
$(document).click(select_element);
但这并没有达到相同的结果,作为 JavaScript 方法的最后一个参数 - 一个 boolean 指示事件处理程序是否应该在捕获或冒泡阶段执行(根据我对Z80791B3AE7002FAA88C246876的理解) /js/events_advanced.html ) - 被排除在外。
如何使用 jQuery 指定该参数或以其他方式实现相同的功能?
从 jQuery 1.7 开始, .on()
现在是绑定事件的首选方法,而不是.bind()
:
来自http://api.jquery.com/bind/ :
从 jQuery 1.7 开始,.on() 方法是将事件处理程序附加到文档的首选方法。 对于早期版本,.bind() 方法用于将事件处理程序直接附加到元素。 处理程序附加到 jQuery object 中当前选定的元素,因此这些元素必须存在于调用 to.bind() 的位置。 有关更灵活的事件绑定,请参阅事件委托 in.on() 或.delegate() 的讨论。
最接近的是绑定 function:
$('#foo').bind('click', function() {
alert('User clicked on "foo."');
});
需要注意的一点是,jQuery 事件方法不会在包含 SVG DOM 的embed
标签上触发/捕获load
,该 DOM 在embed
标签中作为单独的文档加载。 我发现捕获这些load
事件的唯一方法是使用原始 JavaScript。
这不起作用(我已经尝试on
/ bind
/ load
方法):
$img.on('load', function () {
console.log('FOO!');
});
但是,这有效:
$img[0].addEventListener('load', function () {
console.log('FOO!');
}, false);
您现在应该使用.on()
function 来绑定事件。
$( "button" ).on( "click", function(event) { alert( $( this ).html() ); console.log( event.target ); } );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <button>test 1</button> <button>test 2</button>
这是标准 JavaScript (如果您不希望依赖 jQuery 或总体上更好地理解它)的 Mozilla 开发网络 (MDN) 上对此问题的出色处理:
https://developer.mozilla.org/en-US/docs/DOM/element.addEventListener
以下是来自上述处理中的链接的事件流讨论:
http://www.w3.org/TR/DOM-Level-3-Events/#event-flow
一些关键点是:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.