获取调用函数的元素[重复]
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。
【讨论】:
以上是关于获取调用函数的元素[重复]的主要内容,如果未能解决你的问题,请参考以下文章