我目前有一个表单,当选择了一个选项时,它将类附加到输入标签.在使用iCheck插件之前,我让它工作得很漂亮.我基本上是通过一系列父母来找到类’.frmLabel’并在其中添加一个’.frmLabelC
从我可以看到iCheck插件为表单样式添加额外的div元素,所以似乎添加一个额外的父()将解决问题.它有点乱,但这是我能做的最好的,因为我正在使用的小部件是动态引入的.
可以在这里找到实例:http://bvp.dmediastudios.com和没有icheck(有效)的版本在这里http://bvp.dmediastudios.com/v4/
代码如下:
$('.frmInput input[type=radio]').click(function () { // buy or lease options, have to seperate functions for each option since the html structure is different for each one so a all size fits solution using parent() is not possible (that I know of) - very lame. BETTER DONE THAN PERFECT! if ($('.frmInput input[type=radio]').is(':checked')) { // parent(1) = #harwidget, parent(2) = #homefinderform, parent(3) .frmRow - find .frmLabel $(this).parent().parent().parent().parent().find('.frmLabel').addClass('frmLabelChecked'); } });
复选框代码
$('#divBuyType').on('click', 'input:checkbox', function () { $(this).parent().parent().parent().parent().find('.frmLabel').toggleClass('frmLabelChecked', this.checked); });
可在此处找到非工作版本:bvp.dmediastudios.com,可在此处找到工作版本(不带iCheck):bvp.dmediastudios.com/v4/
这是上面函数引用的html块
<div id="mywidget3A0A581997704AA41EB19FFEC804E593" style="text-align:left;"> <div style="width:450px;height:520px;" id="widgetOuter"> <div id="widgetContainer"> <div class="widgetHeader" style="display: none;"> <div class="widgetRight"> <div class="widgetMidd"> <div class="widgetTitle">Home Finder</div> <div class="widgetBackBtn" id="hartab3A0A581997704AA41EB19FFEC804E593" style="display:none;"> <img src="" onclick="showSearch('3A0A581997704AA41EB19FFEC804E593')" style="cursor:pointer;"> </div> <div class="titleBar" id="titleBar3A0A581997704AA41EB19FFEC804E593"></div> </div> </div> </div> <div class="widgetBody"> <span id="widgetBodyDiv" style="height:438px;" onscroll="fixTip('3A0A581997704AA41EB19FFEC804E593');"> <div id="harwidget3A0A581997704AA41EB19FFEC804E593" style="padding: 10px; display: block;"> <form name="homefinderform" method="get" class="forms" id="homefinderform"> <div class="frmRow"> <div class="frmLabel">Buy or Lease :</div> <div class="frmInput"> <span> <div class="iradio_minimal-grey checked" style="position: relative;"> <input type="radio" name="For_Sale" value="1" checked="" onclick="showBuyDiv(this)" class="radioButton" style="position: absolute; opacity: 0;"> <ins class="iCheck-helper" style="position: absolute; top: 0%; left: 0%; display: block; width: 100%; height: 100%; margin: 0px; padding: 0px; background-color: rgb(255, 255, 255); border: 0px; opacity: 0; background-position: initial initial; background-repeat: initial initial;"></ins> </div>Buy</span> <span>-</span> <span> <div class="iradio_minimal-grey" style="position: relative;"> <input type="radio" name="For_Sale" value="0" onclick="showLeaseDiv(this)" class="radioButton" style="position: absolute; opacity: 0;"> <ins class="iCheck-helper" style="position: absolute; top: 0%; left: 0%; display: block; width: 100%; height: 100%; margin: 0px; padding: 0px; background-color: rgb(255, 255, 255); border: 0px; opacity: 0; background-position: initial initial; background-repeat: initial initial;"></ins> </div>Lease</span> </div> </div> <div class="frmRow"> <div class="frmLabel">Property Type</div> <div class="frmInput"> <div id="divBuyType"> <span> <div class="icheckbox_minimal-grey checked" style="position: relative;"> <input name="PROPERTY_CLASS_ID" value="1" type="checkbox" style="width: 20px; position: absolute; opacity: 0;" checked=""> <ins class="iCheck-helper" style="position: absolute; top: 0%; left: 0%; display: block; width: 100%; height: 100%; margin: 0px; padding: 0px; background-color: rgb(255, 255, 255); border: 0px; opacity: 0; background-position: initial initial; background-repeat: initial initial;"></ins> </div>Single Family Homes <div class="br"> <br> </div> <div class="icheckbox_minimal-grey" style="position: relative;"> <input name="PROPERTY_CLASS_ID" value="2" type="checkbox" style="width: 20px; position: absolute; opacity: 0;"> <ins class="iCheck-helper" style="position: absolute; top: 0%; left: 0%; display: block; width: 100%; height: 100%; margin: 0px; padding: 0px; background-color: rgb(255, 255, 255); border: 0px; opacity: 0; background-position: initial initial; background-repeat: initial initial;"></ins> </div>Townhouse/Condo <div class="br"> <br> </div> <div class="icheckbox_minimal-grey" style="position: relative;"> <input name="PROPERTY_CLASS_ID" value="6" type="checkbox" style="width: 20px; position: absolute; opacity: 0;"> <ins class="iCheck-helper" style="position: absolute; top: 0%; left: 0%; display: block; width: 100%; height: 100%; margin: 0px; padding: 0px; background-color: rgb(255, 255, 255); border: 0px; opacity: 0; background-position: initial initial; background-repeat: initial initial;"></ins> </div>Highrise Condominium <div class="br"> <br> </div> <div class="icheckbox_minimal-grey" style="position: relative;"> <input name="PROPERTY_CLASS_ID" value="3" type="checkbox" style="width: 20px; position: absolute; opacity: 0;"> <ins class="iCheck-helper" style="position: absolute; top: 0%; left: 0%; display: block; width: 100%; height: 100%; margin: 0px; padding: 0px; background-color: rgb(255, 255, 255); border: 0px; opacity: 0; background-position: initial initial; background-repeat: initial initial;"></ins> </div>Residential Lots & Land <div class="br"> <br> </div> <div class="icheckbox_minimal-grey" style="position: relative;"> <input name="PROPERTY_CLASS_ID" value="4" type="checkbox" style="width: 20px; position: absolute; opacity: 0;"> <ins class="iCheck-helper" style="position: absolute; top: 0%; left: 0%; display: block; width: 100%; height: 100%; margin: 0px; padding: 0px; background-color: rgb(255, 255, 255); border: 0px; opacity: 0; background-position: initial initial; background-repeat: initial initial;"></ins> </div>Multi-Family <div class="br"> <br> </div> <div class="icheckbox_minimal-grey" style="position: relative;"> <input name="PROPERTY_CLASS_ID" value="5" type="checkbox" style="width: 20px; position: absolute; opacity: 0;"> <ins class="iCheck-helper" style="position: absolute; top: 0%; left: 0%; display: block; width: 100%; height: 100%; margin: 0px; padding: 0px; background-color: rgb(255, 255, 255); border: 0px; opacity: 0; background-position: initial initial; background-repeat: initial initial;"></ins> </div>Homes and/or Acreage</span> </div> <div id="divLeaseType" style="display:none;"> <span> <div class="icheckbox_minimal-grey checked" style="position: relative;"> <input name="PROP_TYPE" value="'SGL'" type="checkbox" style="width: 20px; position: absolute; opacity: 0;" checked=""> <ins class="iCheck-helper" style="position: absolute; top: 0%; left: 0%; display: block; width: 100%; height: 100%; margin: 0px; padding: 0px; background-color: rgb(255, 255, 255); border: 0px; opacity: 0; background-position: initial initial; background-repeat: initial initial;"></ins> </div>Single Family Homes <div class="br"> <br> </div> <div class="icheckbox_minimal-grey" style="position: relative;"> <input name="PROP_TYPE" value="'THC'" type="checkbox" style="width: 20px; position: absolute; opacity: 0;"> <ins class="iCheck-helper" style="position: absolute; top: 0%; left: 0%; display: block; width: 100%; height: 100%; margin: 0px; padding: 0px; background-color: rgb(255, 255, 255); border: 0px; opacity: 0; background-position: initial initial; background-repeat: initial initial;"></ins> </div>Townhouse/Condo <div class="br"> <br> </div> <div class="icheckbox_minimal-grey" style="position: relative;"> <input name="PROP_TYPE" value="'HIR'" type="checkbox" style="width: 20px; position: absolute; opacity: 0;"> <ins class="iCheck-helper" style="position: absolute; top: 0%; left: 0%; display: block; width: 100%; height: 100%; margin: 0px; padding: 0px; background-color: rgb(255, 255, 255); border: 0px; opacity: 0; background-position: initial initial; background-repeat: initial initial;"></ins> </div>Highrise Condominium <div class="br"> <br> </div> <div class="icheckbox_minimal-grey" style="position: relative;"> <input name="PROP_TYPE" value="'LOT'" type="checkbox" style="width: 20px; position: absolute; opacity: 0;"> <ins class="iCheck-helper" style="position: absolute; top: 0%; left: 0%; display: block; width: 100%; height: 100%; margin: 0px; padding: 0px; background-color: rgb(255, 255, 255); border: 0px; opacity: 0; background-position: initial initial; background-repeat: initial initial;"></ins> </div>Residential Lots & Land <div class="br"> <br> </div> <div class="icheckbox_minimal-grey" style="position: relative;"> <input name="PROP_TYPE" value="'MLT'" type="checkbox" style="width: 20px; position: absolute; opacity: 0;"> <ins class="iCheck-helper" style="position: absolute; top: 0%; left: 0%; display: block; width: 100%; height: 100%; margin: 0px; padding: 0px; background-color: rgb(255, 255, 255); border: 0px; opacity: 0; background-position: initial initial; background-repeat: initial initial;"></ins> </div>Multi-Family <div class="br"> <br> </div> <div class="icheckbox_minimal-grey" style="position: relative;"> <input name="PROP_TYPE" value="'ACR'" type="checkbox" style="width: 20px; position: absolute; opacity: 0;"> <ins class="iCheck-helper" style="position: absolute; top: 0%; left: 0%; display: block; width: 100%; height: 100%; margin: 0px; padding: 0px; background-color: rgb(255, 255, 255); border: 0px; opacity: 0; background-position: initial initial; background-repeat: initial initial;"></ins> </div>Homes and/or Acreage <div class="br"> <br> </div> </span> </div> </div> </div> <!--Start Select Fields-->
任何帮助,将不胜感激.在页面上查看html可能更容易.
如果其他人使用此插件并需要使用收音机或复选框触发某种类型的事件,请使用此选项.$('input').on('ifChecked', function(event){ alert(event.type + ' callback'); });
文档可以在这里找到:https://github.com/fronteed/iCheck