如何传递到功能“事件”和其他参数,例如“this”

时间:2017-02-21 16:16:26

标签: javascript

我希望通过单击span元素获取x和y坐标。

<span id="username" onclick="username(this);">[Василий]:</span>

如何正确地将“this”赋予函数var t,因为现在它将转到“event”,并且下一个错误TypeError: t is undefined

function username(event, t) {
        event = event || window.event;
        alert(event.clientX); // undefined
        var nick = t.innerHTML.slice(1, t.innerHTML.length-2);
}

1 个答案:

答案 0 :(得分:2)

你必须按照你想要的顺序传递你想要的所有参数。

onclick="username(event, this)";

最好避免在第一时间使用内部事件属性。

document.getElementById("username").addEventListener("click", username);

function username(event) {
  alert(event.clientX);
  var nick = this.innerHTML.slice(1, this.innerHTML.length - 2);
  alert(nick);
}
<span id="username">[Василий]:</span>

你最好还是使用一个设计用于点击的HTML元素(默认情况下会显示在Tab键顺序中,并且可以很好地与屏幕阅读器配合使用)。即使用<button>,而不是<span>