JQuery: 如何触发隐藏元素的点击事件?

JQuery: How to fire click event on hidden element?

我想创建一个闪烁的效果。当用户点击闪烁的元素时,它就会消失。然而,似乎并不是每个 "user's click" 都能触发 "click event"。有时,当我点击闪烁的元素时,它并没有消失。我认为原因是无法点击隐藏元素。就像这篇文章说的CSS: Is a hidden object clickable?。那么,有没有其他方法可以让闪烁的元素在用户点击元素时立即消失?

var flashToggle = setInterval(function() {
  $("div").toggle();
}, 200)

$("div").on("click", function(e) {
  clearInterval(flashToggle);
  $(this).hide();
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div>Flashing element</div>

$(this).hide(); ---> $("div").hide();

是的,hidden/toggle 将通过设置 css display 隐藏元素。隐藏时,元素无法接收点击。您可以尝试以下方法:

  1. 改用.css('visibility','hidden|visible')。建议这样做,因为它没有改变容器大小和导致其他元素抖动的副作用。

  2. 将闪烁的元素包裹在容器元素中,而不是在容器元素上注册点击。

我认为这可能是您要查找的内容:$("my-element").click()

将闪烁的元素放在 另一个 元素中,并将处理程序放在该父元素上。此外,您可以更改闪烁元素的 visibility 属性,而不是闪烁元素的 display,这样它就不会改变您的布局每次出现或消失时都会翻页。

const child = $('#child');
let visible = true;
var flashToggle = setInterval(function() {
  visible = !visible;
  child.css('visibility',
    visible
    ? 'visible'
    : 'hidden'
  );
}, 500)

$("#container").on("click", function(e) {
  clearInterval(flashToggle);
  $(this).hide();
})
div {
  background-color: yellow;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="container">
  <div id="child">Flashing element</div>
</div>

尝试使用不透明度:0|1 而不是显示:none/可见性:隐藏。 关于不透明度的点击事件:0 对我有用。 它对我有用。