获取调用函数的元素[重复]

Posted

技术标签:

【中文标题】获取调用函数的元素[重复]【英文标题】:Get The Element That Calls a Function [duplicate] 【发布时间】:2012-12-29 10:39:14 【问题描述】:

可能重复:How do you find out the caller function in javascript?

我有以下代码:

JS:
function myfunc(mynumber)
   console.log(mynumber);


html:
<div onclick="myfunc(5);"></div>

有没有办法使用 jQuery 来获取在 myfunc 函数中被点击的那个元素的上下文,而无需在 onclick 属性中传递 this$(this) 作为参数?

【问题讨论】:

是的,去掉内联的onclick函数,改用一个合适的$(element).on('click', function() ...),你的问题都解决了。 你在函数参数中传递了什么? 【参考方案1】:
<script>
  $( "div").bind("click", function( e ) 
    myfunc(mynumber)
  );
</script>

或带参数

$('div').bind("click",   Param1: 2 , function(event)
    alert(event.data.Param1);
);

【讨论】:

【参考方案2】:

我会使用 jQuery 来实际绑定事件处理程序,这样函数内部的 this 将引用触发事件的元素。您可以使用 HTML5 data-* 属性来存储要用于该特定元素的数字。

HTML

<div data-number="5">5</div>
<div data-number="26">26</div>

jQuery

$(function() 
    $('div').on('click', function(e) 
        console.log($(this).data('number'));
        console.log(this);
    );
);

【讨论】:

【参考方案3】:

不确定这是否是您要求的。您可以使用

调用函数
myfunc.call(params);

现在在 myfunc 中,当您引用或使用 this 时,它指的是调用它的上下文或 DOM。

【讨论】:

以上是关于获取调用函数的元素[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用HTML元素调用PHP函数[重复]

从被调用函数中获取调用函数名[重复]

为啥“this”在从 HTML 元素调用的 React 函数中为空 [重复]

无法调用基础构造函数 - 获取读取访问权限[重复]

从Python中存储的字符串调用函数[重复]

每个数组元素的异步调用并等待完成[重复]