触发当前元素,其中定义了onclick事件

时间:2018-04-20 18:52:34

标签: javascript

我有这样的功能。我想选择当前元素而不传递参数或改变HTML中的任何内容。

我看到$(this)无效。我们可以通过其他技术实现这一目标吗?

function social_follow_us(){
    $(this).addClass("green")
}   
像这样的HTML。

<a href="..." onclick="social_follow_us()" class="btn btn-primary followButton" target="_blank" id="instagram_follow">Follow on Instagram</a>

2 个答案:

答案 0 :(得分:1)

另一种解决方案是从this事件传递<a onclick="...">

&#13;
&#13;
function social_follow_us(elem) {
  $(elem).addClass("green")
}
&#13;
a.green {
  color: green;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="..." onclick="social_follow_us(this)" class="btn btn-primary followButton" target="_blank" id="instagram_follow">Follow on Instagram</a>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

上下文这是错误的它是窗口对象而不是你想要改变颜色的元素

function social_follow_us(){
  $(this).addClass("green")
} 

// try this
function social_follow_us(){
  $(".followButton").addClass("green");
}

// or
$('.followButton').click(function() {
  $(this).addClass('green');
})