如何使用jquery在点击时获取前一个目标?因为我需要比较前一个被点击的元素,并将其与当前被点击的元素进行比较。就像这样:
$('#myTab').on('click', function(e){var prevTar = e.target.prev();if(prevTar == e.target){console.log('view all');}})
$('#myTab').on('click', function(e){
var prevTar = e.target.prev();
if(prevTar == e.target){
console.log('view all');
}
})
字符串
30byixjq1#
将前一个目标存储到外部变量中
let prevTar;$('#myTab').on('click', function(evt) { const target = evt.target if (prevTar && prevTar === target) { console.log('view all'); } // Update prev Target prevTar = target; })
let prevTar;
$('#myTab').on('click', function(evt) {
const target = evt.target
if (prevTar && prevTar === target) {
// Update prev Target
prevTar = target;
个字符正如你在上面看到的,e.target可能并不总是反映预期的LI元素(如果:事件起源于LI后代)。为了解决这个问题,你可以使用事件委托,比如:
e.target
let prevTar;$('#myTab').on('click', "li", function(evt) { if (prevTar && prevTar === this) { console.log('view all'); } // Update prev Target prevTar = this; })
$('#myTab').on('click', "li", function(evt) {
if (prevTar && prevTar === this) {
prevTar = this;
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><ul id="myTab"> <li>Lorem <span>SPANIPSUM</span></li> <li>Dolor <b>bold amet</b></li></ul>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul id="myTab">
<li>Lorem <span>SPANIPSUM</span></li>
<li>Dolor <b>bold amet</b></li>
</ul>
的字符串现在,即使您单击<li>元素的后代(<i>或<span>),代码也会按预期工作,因为this将引用委托者#myTab UL元素的处理程序LI。
<li>
<i>
<span>
this
#myTab
1条答案
按热度按时间30byixjq1#
将前一个目标存储到外部变量中
个字符
正如你在上面看到的,
e.target
可能并不总是反映预期的LI元素(如果:事件起源于LI后代)。为了解决这个问题,你可以使用事件委托,比如:的字符串
现在,即使您单击
<li>
元素的后代(<i>
或<span>
),代码也会按预期工作,因为this
将引用委托者#myTab
UL元素的处理程序LI。