Javascript 如何在所有元素上只触发一次toggle()?

Javascript 如何在所有元素上只触发一次toggle()?,javascript,jquery,function,click,toggle,Javascript,Jquery,Function,Click,Toggle,我怎么能只触发一次切换 我有 <%= f.check_box :push %> <label for="challenge_push" class="reminder-choices">Push</label> <%= f.check_box :message %> <label for="challenge_message" class="reminder-choices">Text</label> <%= f.ch

我怎么能只触发一次切换

我有

<%= f.check_box :push %>
<label for="challenge_push" class="reminder-choices">Push</label>
<%= f.check_box :message %>
<label for="challenge_message" class="reminder-choices">Text</label>
<%= f.check_box :mail %>
<label for="challenge_mail" class="reminder-choices">Email</label>

<script>
  $('.reminder-choices').click(function(){
    $(".hide-remind").toggle();
  });
</script>

换句话说,单击一次“提醒选择”,则切换将起作用;否则,如果再次单击,则切换将不起作用。

您的第二次尝试应该会起作用。你也可以这样做

$('.remention choices')。在('click.remention',function()上{
$(“.hide提醒”).toggle();
$(this.off('click.rementer');
});

点击这里

将被切换
您的第二次尝试应该会成功。你也可以这样做

$('.remention choices')。在('click.remention',function()上{
$(“.hide提醒”).toggle();
$(this.off('click.rementer');
});

点击这里

将被切换
将代码包装在容器中,然后委派事件

$('.container').one('click','.rements choices',function()){
$(“.hide提醒”).toggle();
});

点击这里
还是在这里
还是在这里

将被切换
将代码包装在容器中,然后委派事件

$('.container').one('click','.rements choices',function()){
$(“.hide提醒”).toggle();
});

点击这里
还是在这里
还是在这里

将被切换
one()
应该可以正常工作-不过请注意,每个
元素都会触发一个事件。如果只想对所有这些对象进行一次单击,则需要解除绑定事件。这将有助于查看问题的工作示例,包括您的HTML。关于此主题的其他问题似乎在试图避免这种行为,我无法复制它们的问题,因为我在您编辑的HTML
提醒选择中的解决方案是一个
id
,因此jQuery中的选择器应该使用
,不是
,因此您希望在单击其中一个元素后忽略所有元素上的
单击
事件?
one()
应该可以正常工作-不过请注意,每个
元素都会触发一个事件。提醒选择
元素。如果您只想对所有事件触发一次单击,则需要解除事件绑定。这将有助于查看问题的工作示例,包括您的HTML。关于此主题的其他问题似乎在试图避免这种行为,我无法复制它们的问题,因为我在您编辑的HTML
提醒选择中的解决方案是一个
id
,因此jQuery中的选择器应该使用
,不是
,因此您希望在单击其中一个元素后忽略所有元素上的
单击
事件?仅供参考
bind()
unbind()
早就被弃用了。您应该改为使用
on()
off()
。Thx@RoryMcCrossan–很久没有使用jQuery了。;-)如果我能+2,那么我会,纯粹是为了使用名称空间。仅供参考,
bind()
unbind()
早就被弃用了。您应该改为使用
on()
off()
。Thx@RoryMcCrossan–很久没有使用jQuery了。;-)如果我能+2,那么我会,纯粹是为了使用名称空间。
# Same behavior as above. Still toggles back and forth.
$('.reminder-choices').one("click", function(){
    $(".hide-remind").toggle();
});