如何通过jquery将'this'元素传递给内部函数('click')

Fan*_*ane 3 javascript jquery

如果我有一个像

<div class='some_class' onclick='executeF(this)'/>
Run Code Online (Sandbox Code Playgroud)

这将等同于:

$('.some_class').on('click',function(e){
    executeF(this);
});
Run Code Online (Sandbox Code Playgroud)

要么

$('.some_class').on('click',function(e){
    executeF(e);
});
Run Code Online (Sandbox Code Playgroud)

要么

$('.some_class').on('click',function(e){
    executeF($(this));
});
Run Code Online (Sandbox Code Playgroud)

我目前没有测试的方法,所以我只想确保在直接进行编码之前是直接对应的jquery方法,因为(再次)我现在无法测试

Raj*_*esh 7

$('.some_class').on('click',function(e){
    executeF(e);
});
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,e代表事件对象。要获取当前的DOM元素,您将需要使用e.currentTarget

This 这里将代表触发事件的DOM元素。

$(this)将为您提供jQuery的element数组。能够

您可以在以下代码上对此进行测试:

$('.some_class').on('click',function(e){
    executeF(e);
});
Run Code Online (Sandbox Code Playgroud)
function Click(el) {
  console.log(el)
}

$(".some_class").on("click", function(e) {
  console.log("Event: ", e);
  console.log("Current Target of Event: ", e.currentTarget);
  console.log("this: ", this);
  console.log("$(this): ", $(this));
})
Run Code Online (Sandbox Code Playgroud)
div {
  height: 100px;
  width: 100px;
  border: 1px solid silver;
  margin: 10px;
  padding: 10px;
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!