通过函数将`this`作为变量传递给jQuery

时间:2019-05-09 02:27:23

标签: jquery function variables this

我想将执行操作的元素传递给函数,但不确定如何执行。

$('.report_chart_enquiries').click(function(){
    showing_barcharts(this);
}

function showing_barcharts(elem) {
     $(elem).addClass('report_chart_current');
}

<div class="report_chart_enquiries">Enquiries</div>

这就是我认为的工作方式,但是什么也没做。甚至有可能吗?

3 个答案:

答案 0 :(得分:1)

重新检查您的代码js:

$('.report_chart_enquiries').click(function(){
    showing_barcharts(this);
}); //you mistaked there

function showing_barcharts(elem) {
    $(elem).addClass('report_chart_current');
}

这是一个演示链接https://jsfiddle.net/f10cpkyd/

答案 1 :(得分:1)

  1. 您可以传递命名函数来单击处理程序,并在.target中使用参数来获取触发事件的元素

$('.report_chart_enquiries').click(showing_barcharts)

function showing_barcharts(elem) {
  $(elem.target).addClass('report_chart_current');
}
.report_chart_current {
  color: red
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="report_chart_enquiries">Enquiries</div>

答案 2 :(得分:0)

请确保您的代码有效,并尝试更有效:

$(document).on('click', '.report_chart_enquiries', function(){
    showing_barcharts(this);
}); 

function showing_barcharts(elem) {
    $(elem).addClass('report_chart_current');
}

$(document)将确保您的代码始终有效。