无论首先单击哪个复选框,都需要调用函数1次-.one()的一些变体
Need to call function 1 time no matter which checkbox is clicked first - some variation of .one()
我有一个页面,上面有很多产品,所有产品都是同一类型的。我为产品建立了一个带有复选框的过滤功能。加载页面时,将加载所有产品,默认情况下复选框将取消选中。
目标:当用户第一次点击复选框来过滤产品时,无论点击哪个复选框,我都希望特定功能只运行一次,在这种情况下,隐藏所有产品。当我使用.one()时,它为每个复选框工作一次,这不是我想要的结果。我需要它运行一次,周期。无论单击哪个复选框。
下面是HTML和jQuery,非常感谢您的帮助,并感谢您抽出时间。
HTML:
<div class="col-md-3 test-one"><label><input id="fourth-cbox" type="checkbox" value="fourth_checkbox" />FOURTH COLLECTION</label></div>
<div class="col-md-3 test-one"><label><input id="first-cbox" type="checkbox" value="first_checkbox" />FIRST COLLECTION</label></div>
<div class="col-md-3 test-one"><label><input id="second-cbox" type="checkbox" value="second_checkbox" />SECOND COLLECTION</label></div>
<div class="col-md-3 test-one"><label><input id="third-cbox" type="checkbox" value="third_checkbox" />THIRD COLLECTION</label></div>
jQuery:
$(document).ready(function() {
$(".test-one").one('click',function(){
$('div[data-product]').parents("li").hide();
});
});
您可能需要使用JQuery 提供的.unbind()
方法
$(document).ready(function() {
$(".test-one").bind('click',function(){
$('div[data-product]').parents("li").hide();
$(".test-one").unbind('click');
});
});
$(document).ready(function() {
var test = true;//set to true
$(".test-one").change(function() {
if(test){//will run only once during var true
alert('one')
test =false;//set to false
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="col-md-3 test-one"><label><input id="fourth-cbox" type="checkbox" value="fourth_checkbox" />FOURTH COLLECTION</label></div>
<div class="col-md-3 test-one"><label><input id="first-cbox" type="checkbox" value="first_checkbox" />FIRST COLLECTION</label></div>
<div class="col-md-3 test-one"><label><input id="second-cbox" type="checkbox" value="second_checkbox" />SECOND COLLECTION</label></div>
<div class="col-md-3 test-one"><label><input id="third-cbox" type="checkbox" value="third_checkbox" />THIRD COLLECTION</label></div>
喜欢这个吗
- 将变量设置为true
- 检查变量if true运行函数,然后将其设置为false
- 函数将不会运行,因为变量现在为false
我会做一些类似的事情
var flag = false;
$('element').on('click' , function(e){
if(!flag){
callYourFunction();
flag = true;
}
}
我会设置一个标志来表示该方法已经运行。
相关文章:
- Javascript返回值只在循环中返回一次
- Jquery FadeIn FadeOut 只工作一次
- 使用javascript检查多个输入值,并在1次检查中标记多个输入框
- Javascript html每点击一次就会更改url
- /undefined在我的404错误日志中多次出现
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- Google Adsense多次加载脚本
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- ScriptManager.RegisterStartupScript保持多次添加脚本块
- Meteor Router数据函数被调用两次
- 创建要多次使用的函数
- 多次发射多个可观察器的问题
- jQuery滚动功能只工作一次
- 无论首先单击哪个复选框,都需要调用函数1次-.one()的一些变体
- Jquery .one() 函数不会阻止表单输入期间的多次点击事件
- jquery.one()触发了一次查询,但是如果.one(()内部出现问题,我怎么能触发一次查询呢
- One()多次触发
- Jquery在视窗中运行一次.one()
- .one() jQuery函数会自动触发多次
- 传递给jQuery的one()方法的函数仅在第一次触发事件时执行