JavaScript jQuery在触发点击后阻止刷新进入无限循环

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"

我有以下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" 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(“选中”,为真)抱歉,我不清楚,当选择时,
  • 它被更改为该类,所以我只需要更改该类?你知道怎么做吗?