javascript - 如何获取onclick调用对象?

标签 javascript jquery html

我需要在 onclick 事件的调用对象上有一个处理程序。

<a href="123.com" onclick="click123(event);">link</a>

<script>
  function click123(event) {
    //i need <a> so i can manipulate it with Jquery
  }
</script>

我想在不使用 jQuery 的 $().click$().live 但使用上述方法的情况下执行此操作。

最佳答案

在内联点击处理程序中传入this

<a href="123.com" onclick="click123(this);">link</a>

或者在函数中使用event.target(根据W3C DOM Level 2 Event model)

function click123(event)
{
    var a = event.target;
}

当然,IE is different ,所以处理这个问题的普通 JavaScript 方法是

function doSomething(e) {
    var targ;
    if (!e) var e = window.event;
    if (e.target) targ = e.target;
    else if (e.srcElement) targ = e.srcElement;
    if (targ.nodeType == 3) // defeat Safari bug
        targ = targ.parentNode;
}

或更简洁

function doSomething(e) {

    e = e || window.event;
    var targ = e.target || e.srcElement || e;
    if (targ.nodeType == 3) targ = targ.parentNode; // defeat Safari bug
}

其中 e 是在 IE 以外的浏览器中传递给函数的事件对象

不过,如果您使用的是 jQuery,我强烈建议使用不显眼的 JavaScript,并使用 jQuery 将事件处理程序绑定(bind)到元素。

关于javascript - 如何获取onclick调用对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1553661/

相关文章:

html - 背景图像不在绝对元素上重复

javascript - 创建自定义休息客户端

javascript - onClick 在 :active is set on img 时调用第二个 Click

javascript - jquery/js 错误 - DOM 错误 : DOM Exception 8 - When I . html 任何变量

javascript - Dojo Grid - 在可编辑和不可编辑之间切换

javascript - 将 javascript 变量的动态值解释为文本框 ID

jquery-ui 可拖动 : change clone helper's css margin correctly

javascript - 如何在 Firefox 中使用 javascript 将 dom.allow_scripts_to_close_windows 设置为 true 值?

javascript - 从 html 调用函数内部的 JavaScript 函数

javascript - 横向 Javascript 菜单错误