- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在每个 jQuery 事件中,jQuery 都提供与 this
相同的 currentTarget
,但据我了解 currentTarget
的属性取决于在您的浏览器上。
在 chrome 中,我可以获得 event.currentTarget.dataset
,它为我提供了启动事件的元素的数据,但我认为这并不适用于所有浏览器。据我所知,唯一的跨浏览器解决方案是通过将 currentTarget 包装在另一个 jQuery 对象中来获取数据,如下所示。
var div = jQuery("<div/>").data("numbers", [1,2,3]);
div.click(function(e) {
var data = jQuery(e.currentTarget).data();
console.log(data.numbers);
});
有谁知道跨浏览器解决方案来获取数据而无需使用 this/currentTarget
创建新的 jQuery 对象?
更新:为了清楚起见,我问的原因是:
我们再次将触发事件的元素转换为 jQuery 对象,并再次通过 jQuery 发送它(它已经是创建事件的 jQuery 对象)。我希望有一种方法将已经创建的 jQuery 对象带入事件中。 this presentation 上的幻灯片 44 和 45解释一下我的思考过程。
您可以使用 event.currentTarget.dataset
来完成此操作,但我不认为它是跨浏览器解决方案。在上面的代码中,您可以使用缓存的 jQuery 对象 div
来获取数据,而无需重新创建 jQuery 对象。这适用于该特定示例,但您会如何处理像下面的 delegate
事件这样的动态事件:
jQuery("#container").on('click', '.pop-data', function(e) {
var data = jQuery(e.currentTarget).data();
alert(data);
});
上面的代码有效并且不是一个糟糕的解决方案,但是有人知道一种在不创建新的 jQuery 对象的情况下获取数据的方法吗?
最佳答案
向下查看已接受的答案
Having problems in IE8 when attempting to get data from target event
jQuery("#container").on('click', '.pop-data', function(e) {
console.log($(e.target).attr('data-numbers'));
});
就我个人而言,我无法让 .data() jQuery 的东西工作(不知道为什么),但上面的方法可以将 HTML 属性嵌入到行中。
<img src='...' data-numbers='1'>
关于javascript - jQuery 事件 currentTarget 数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25617268/
这个问题在这里已经有了答案: Get a CSS value with JavaScript (8 个答案) 关闭 1 年前。 currentTarget 在我添加 style html 元素时起作
这个问题在这里已经有了答案: Get a CSS value with JavaScript (8 个答案) 关闭 1 年前。 currentTarget 在我添加 style html 元素时起作
我在学习 event.target和 event.currentTarget .我想我很清楚两者之间的区别。但陷入了event.currentTarget值原来是空的。 以下是 HTML 和 JS 代
为什么e.currentTarget.id显示警告? void clickHandler(Event e){ var label = e.currentTarget.id; 最佳答案 必须将e
我有一个组件,我可以使用它来保持单击,以便通过按住来调用多个功能。我的操作向 Redux reducer 分派(dispatch)一个简单的函数。 我的组件的目标是让人们通过保持鼠标点击来减少订单数量
因此,我尝试创建一个可重用的函数,供我页面上的每个 .featured-image 使用。如果我不使用 Backbone 事件:并且我只编写注释掉的代码,它就可以工作。我如何获得事件 imageOve
我在 Tap 上有 knockout 绑定(bind) 这应该获得目标 attr 数据 anchor ,该 anchor 适用于桌面但不适用于 Android.. scrollTo() {
我需要一些关于 JavaScript 的帮助,我需要 currentTarget 的替代方法,因为我的 JavaScript 程序不能在 Internet Explorer 8 上运行,所以我需要任何
event.currentTarget 和 this 有区别吗?性能怎么样? 最佳答案 currentTarget 事件属性返回事件监听器触发事件的元素。这仅在捕获和冒泡期间特别有用。 您也可以使
我用这个代码 document.addEventListener('click', (event) => { const { className, id, src = null, href =
下面两种方法有什么区别吗? #1 比 #2 快吗? #1 $('#selector').on('click',function(){ $(this)... // do stuff with c
请看下面的代码。 function deferredClick(f) { return (function (e) { var $this = $(e.currentTarge
我有一个事件处理程序,我将其附加到一个元素以捕获冒泡的点击事件。我需要一种可靠方法来获取捕获事件的元素,而不是触发它的元素。此特定元素高于 srcElement/target 的级别数量是任意的,因此
我的 Javascript 与 IE8 不兼容,我不确定如何解决它。我收到一个错误“currentTarget 为 null 或不是一个对象”,它出现在这段代码中: (function() { v
我有我的 html 的这一部分(不止一个相同类型): iPhone 345445 我的这部分 javascript 代码旨在获取 span 标签的 innerHTML 并为它们分配值,如下
我构建了这个小示例。我有一些元素,其中一些有 15% 的折扣。我想在按下“购买”时将此值(价格的 15%)推送到数组中,并且仅当按下的商品有折扣时。 我的想法是使用 currentTarget 来识别
在每个 jQuery 事件中,jQuery 都提供与 this 相同的 currentTarget,但据我了解 currentTarget 的属性取决于在您的浏览器上。 在 chrome 中,我可以获
考虑: let sel=document.getElementById('mys'); sel.onchange=function(e) { console.log(e.currentTarget
我正在尝试制作一个简单的应用程序,其中有 1 个全局事件监听器监听点击事件。 此时,每当我单击一个按钮时,即使其中有文本,它也会返回 undefined(按钮开始时没有文本,但随后会被填充)。 如何获
我有一个外部 div 捕获 onWheel鼠标事件。在处理程序中,我想知道鼠标指针相对于外部 div 的坐标。例如: constructor() { this.handleWheel = this
我是一名优秀的程序员,十分优秀!