jquery - 在多个类上使用 .one()

标签 jquery click

我有多个具有相同类名的 div,但是一旦单击其中一个,如果再次单击具有相同类的另一个 div,我不希望我的函数再次发生。

$('.js-item').one( "click", function() {
    console.log('clicked once');
    // do something only once even if a div with the same class is clicked again
});

有没有办法让 .one() 在我的所有类(class)上只发生一次?因为目前它仅适用一次,但每次单击具有该类名称的单个 div 时。

我需要这些 div 具有相同的类名。

最佳答案

执行逻辑后,您可以对所有这些类调用 off():

$('.js-item').one("click", function() {
  console.log('clicked once');

  // do something only once even if a div with the same class is clicked again

  $('.js-item').off('click');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="js-item">click me!</div>
<div class="js-item">click me!</div>
<div class="js-item">click me!</div>
<div class="js-item">click me!</div>
<div class="js-item">click me!</div>

使用此方法会使 one() 变得多余,因此您可以根据需要恢复到标准 on()

关于jquery - 在多个类上使用 .one(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40488727/

相关文章:

javascript - 捕获和冒泡事件变得困惑

javascript - Firebug 分析问题 : "no activity to profile"

javascript - 即 6 找不到 javascript 定义

jquery - 无法在页面卸载事件中调用 post 到 asp.net 页面

php - MySQL 更新 PHP 和 JS

magento - 如何获取特定产品的浏览/点击

java - 单击selenium中的CSS按钮

c# - 双击发生时防止单击 WPF 控件

python - Tkinter 在点击时获取鼠标坐标并将它们用作变量

javascript - 使用 JavaScript 或 JQuery 模拟用户点击