调用用户定义的jQuery函数与$(这)选择

问题描述 投票:1回答:2

我试图做一个函数隐藏圆点击时。

我想,我的语法是正确的,但是当我在圆上单击什么也不会发生。

我有以下代码:

function Disappearing() {
  $(this).hide();
}

$(".circle").click(function() {
  Disappearing();
})
.circle {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  margin-bottom: 5px;
}

#red {
  background-color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="red" class="circle"></div>
jquery this
2个回答
1
投票

除非你传递给函数,在换句话说Disappearing()点在事件函数当前对象this不能访问点击的对象,所以你应该得到$(this)click事件,然后把它传递给Disappearing()

尝试这个:

function Disappearing (circle) {
   circle.hide();
}
    		
$(".circle").click(function() {
	Disappearing($(this));		
});
 
.circle {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  margin-bottom: 5px;
}
#red {
  background-color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="red" class="circle"></div>

1
投票

使用参数传递的范围,以你的函数

function Disappearing(el) {
  $(el).hide()
}

$(".circle").click(function() {
  Disappearing(this)
})
.circle {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  margin-bottom: 5px;
}

#red {
  background-color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="red" class="circle"></div>
© www.soinside.com 2019 - 2024. All rights reserved.