javascript - 函数调用者无效元素

标签 javascript function function-call

如果我有:

<div id="mydiv" onmouseover="myfunc()">
  <div id="mydiv1"></div>
  <div id="mydiv2"></div>
</div>

<script>
  function myfunc() {
    var evt = window.event || arguments.callee.caller.arguments[0];
    var em = evt.target || evt.srcElement;
    return em.id;
  }
</script>

该函数由 mydiv onmouseover 调用,但如果鼠标光标位于 mydiv1 上,函数将返回 mydiv1

如何让它始终显示mydiv

P.S:我知道我可以使用 myfunc(this) 之类的东西,但我想从我的函数内部找到调用者。

最佳答案

我个人更喜欢使用 jQuery 来连接事件:

$('#mydiv').on('mouseover',function(){
    var id = $(this).attr('id');
    // ...
});

如果这应该应用于多个元素,则使用类选择器:

$('.hoverable').on('mouseover',function(){
    var id = $(this).attr('id');
    // ...
});

要同时处理 future 的内容,请将事件处理程序附加到共同祖先,并选择第二个参数中的可悬停元素on:

$('body').on('mouseover','.hoverable',function(){
    var id = $(this).attr('id');
    // ...
});

See it in action with future content here.

关于javascript - 函数调用者无效元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11153117/

相关文章:

function - Azure Function App URL 自行更改

在c中调用一个函数以在另一个函数调用中返回一个字符串

javascript - 使用jquery如何调用一个函数并在函数执行完成时从上一个函数调用另一个函数

javascript - TypeScript 定义外部类

javascript - 如何按值计算 HTML 单选输入元素?

javascript - 实时验证而不是按钮单击验证

function - 如何在qml中创建全局函数

javascript - jQuery Unresolved 冲突

ios - 警告 : Value was defined but never used; consider replacing with a boolean test

c++ - 模板函数给出 "no matching function for call"错误