javascript - 获取链接函数中单击元素的数据属性

标签 javascript jquery

在如下场景中如何在控制台中获取imgt:

function test(e){
let tg = e.target.attr('data-tg');
console.log(tg); // error - target is undefined
}

$('button').on('click', function(e){
let fn = $(this).attr('data-fn');
window[fn]();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<button data-tg='imgt' data-fn='test'>CLICK</button>

最佳答案

就其本身而言,e.target 只是一个元素,无法具有 .attr() 函数。这应该显示在您的控制台中。

此外,您不向该函数传递任何参数。考虑以下因素。

function test(e) {
  if (e == undefined) {
    console.log("Event is Undefined");
    return false;
  }
  let tg = $(e.target).data('tg');
  console.log(tg); // error - target is undefined
}

$("#btn-1").on('click', function(event) {
  let fn = $(this).data('fn');
  window[fn](event);
});
$("#btn-2").on('click', function(event) {
  let fn = $(this).data('fn');
  window[fn]();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<button id="btn-1" data-tg='imgt' data-fn='test'>Test 1</button><button id="btn-2" data-tg='imgt' data-fn='test'>Test 2</button>

关于javascript - 获取链接函数中单击元素的数据属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59634191/

相关文章:

用于触摸设备的 Javascript 拖放

javascript - jQuery 函数和页面重新加载问题(也许)

javascript - Promise 的 getJSONP 函数

javascript - 通过忽略值来更新索引数据库中的对象

jquery - Phonegap Windows Phone 7 使用 jQuery 动态 HTML 加载和跨域调用

jquery - Superfish 的最佳下拉导航替代方案是什么?

javascript - 使用 Highcharts,我想覆盖一条显示柱状图最佳值的线

javascript - 如果我在 Javascript 中使用 delete,var x 和简单 x 声明有什么区别?

javascript - 自动播放有声视频

javascript - 在 Chart.js 中使用条形上方的粘性数字