JavaScript jQuery在触发点击后阻止刷新进入无限循环
我有以下html:JavaScript jQuery在触发点击后阻止刷新进入无限循环,javascript,jquery,html,Javascript,Jquery,Html,我有以下html: <li class="product_filter input required" id="product_filters_form_sizes_input"><fieldset class="choices"><legend class="label"><label>Sizes</label></legend><input id="product_filters_form_sizes_none"
<li class="product_filter input required" id="product_filters_form_sizes_input"><fieldset class="choices"><legend class="label"><label>Sizes</label></legend><input id="product_filters_form_sizes_none" name="product_filters_form[sizes][]" type="hidden" value=""><ol class="choices-group"><li class="choice checked"><label for="product_filters_form_sizes_shortskinny"><input id="product_filters_form_sizes_shortskinny" name="product_filters_form[sizes][]" type="checkbox" value="Short/Skinny"><i class="icon checked-indicator"></i>SHORT/SKINNY</label></li>
<li class="choice"><label for="product_filters_form_sizes_shortslim"><input id="product_filters_form_sizes_shortslim" name="product_filters_form[sizes][]" type="checkbox" value="Short/Slim"><i class="icon checked-indicator"></i>SHORT/SLIM</label></li>
<li class="choice"><label for="product_filters_form_sizes_shortathletic"><input id="product_filters_form_sizes_shortathletic" name="product_filters_form[sizes][]" type="checkbox" value="Short/Athletic"><i class="icon checked-indicator"></i>SHORT/ATHLETIC</label></li>
<li class="choice"><label for="product_filters_form_sizes_shortbroad"><input id="product_filters_form_sizes_shortbroad" name="product_filters_form[sizes][]" type="checkbox" value="Short/Broad"><i class="icon checked-indicator"></i>SHORT/BROAD</label></li>
</li>
这是可行的,但它进入了一个无限循环,其行为如下所示:
页面加载->点击被触发->页面刷新->再次点击被触发->页面再次刷新,它会继续下去
添加returnfalse,返回相同的行为
jQuery(function($){
$( "#product_filters_form_sizes_shortslim" ).trigger( "click", function(){
return false;
});
});
我还尝试:
jQuery(function($){
$( "#product_filters_form_sizes_shortslim" ).trigger( "click", function(e){
e.preventDefault();
e.stopPropagation();
});
});
jQuery(function($){
$( "#product_filters_form_sizes_form_sizes_shortslim" ).click(function{
return false;
});
});
同样的行为,它的加载比前一个稍微延迟,但重新加载并进入循环
还尝试:
jQuery(function($){
$( "#product_filters_form_sizes_shortslim" ).trigger( "click", function(e){
e.preventDefault();
e.stopPropagation();
});
});
jQuery(function($){
$( "#product_filters_form_sizes_form_sizes_shortslim" ).click(function{
return false;
});
});
什么都不会发生,除非我这样做:
$( "#product_filters_form_sizes_form_sizes_shortslim" ).click()
同样的无限循环
此外,当单击1i
时,它将从
更改为
我在Rails和Spree中使用它,所以不能对HTML进行任何更改
我一直在努力解决这个问题有一段时间了,所以任何关于如何解决这个问题的帮助或提示都将不胜感激
非常感谢你
trigger(eventName,extraParameters)
您正在传递的函数没有运行。那么,您是否有在检查项时提交表单的代码?因为单击复选框不应提交表单。是的,单击表单即被提交,li.choice
将变为选中li.choice
,这就是无限循环的原因。所以我猜您不希望它提交,只需设置checked属性即可。现在我想知道为什么您不只是设置checked属性<代码>$(“#产品#过滤器(u表单)大小(u表单)大小(u shortslim)”).prop(“选中”,为真)代码>抱歉,我不清楚,当选择时,
它被更改为该类,所以我只需要更改该类?你知道怎么做吗?