【问题标题】:Fire click event once per (different) class每个(不同)类触发一次点击事件
【发布时间】:2021-10-01 05:27:33
【问题描述】:

我试图在任何具有相同类的标签上触发一次点击事件。

我尝试使用 '.one',但在单击第一个类标签后它会自行删除。

$(document).ready(function() {   
    $(".dropdown").one('click', function() { 
        ...
    });
});

代码是从同一目录下的另一个 .php 文件中购买的,其中包含一些服务器信息,因此具有相同类的标签数量有多个(无尾)。

<div class = \"dropdown\" id=" . $row["name"] . "dropdown" . ">
                    <div>". $row["email"] . "</div>
                    <div>name:" . $row["name"] ."</div>
                    <div>". $row["email"] ."</div></div>
                    ";

有什么建议吗?

【问题讨论】:

  • 有点不清楚——你有多个标签和一个类还是一个标签有多个类?如果有多个标签,只有一个被点击?如果多个类允许为每个类点击标签?
  • “触发点击事件”/.one("click") - 这是两种不同的场景。 触发点击$(".dropdown").trigger("click"),而.one("click"处理点击事件。你想做什么?
  • require: "once per class" / issue: "removes itself after clicked" - 你的“问题”是对你要求的描述 -即你想要做什么。
  • 我有多个同一个类的标签。我想在点击时为每个标签添加信息,但只添加一次。
  • 您要添加什么样的“信息”?检查是否已添加“信息”可能更简单,也许添加/删除另一个类。您可能可以通过事件委托来做到这一点,但很难说当用户再次单击时您期望发生什么。或者,当您“仍需要能够出于其他目的点击标签时,您可以使用不同的点击处理程序

标签: javascript php html jquery ajax


【解决方案1】:

根据您的 cmets,您实际需要做的是检查是否已经可用的文本?

$(document).ready(function() {   
    $(".dropdown").on('click', function() { 
       if(empty($('<text wrapper class or id>').text())){
           // add code to bring the info
       }
       //rest other code.
    });
});

注意:如果你可以显示你的代码 HTML,那么我可以更新我的代码给你具体的答案。以上将指导您如何进行。

【讨论】:

  • 是的,就像我不想让问题过于复杂,但我打算在引入信息后使用切换来隐藏/显示信息。
  • 谢谢。所以我检查该类是否为空或存在,否则运行切换。我可以离开那个。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多