2
我還有一個包含元素的列表,如果單擊該元素,該類將獲得「添加」類。這個元素將被轉移到表單中。因此,我列出了與列表中的'li'具有相同類的複選框。如果元素具有類別,則切換複選框
我寫了一個jQuery腳本,它應檢查'li'是否被點擊(hasClass),然後正確的複選框應該具有'checked'屬性。但它不能正常工作。不知道是什麼我已經錯了...
HTML:
<div class="container">
<div class="row row-centered konf-wrapper-1">
<div class="col-md-4 label-wrap">
<h1 class="header-label">Konzeption</h1>
<ul class="li-wrap">
<li class="added haken">Kommunikationsstrategie</li>
<li class="0 hide-me add-btn point">Zielgruppendefinition</li>
</ul>
</div>
<div class="col-md-4 label-wrap">
<h1 class="header-label">Kommunikationsmaßnahmen</h1>
<ul class="li-wrap">
<li class="1 hide-me add-btn point">Namensfindung & Logoentwicklung</li>
<li class="2 hide-me add-btn point">Exposé</li>
<li class="3 hide-me add-btn point">Textdesign</li>
<li class="4 hide-me add-btn point">Anzeigenkampagnen</li>
<li class="5 hide-me add-btn point">Außenwerbung</li>
<li class="6 hide-me add-btn point">Bautafelgestaltung</li>
</ul>
</div>
</div>
<div class="row row-centered konf-wrapper-2 label-wrap">
<div class="col-md-4 label-wrap">
<h1 class="header-label">Online-Marketing</h1>
<ul class="li-wrap">
<li class="8 hide-me add-btn point">Website</li>
<li class="9 hide-me add-btn point">Social Media</li>
<li class="10 hide-me add-btn point">Digitale Präsentation</li>
</ul>
</div>
<div class="col-md-4 label-wrap">
<h1 class="header-label">Virtuelle Welten</h1>
<ul class="li-wrap">
<li class="11 hide-me add-btn point">Innenvisualisierung</li>
<li class="11 hide-me add-btn point">Außenvisualisierung</li>
<li class="12 hide-me add-btn point">Virtuelle Begehung</li>
<li class="13 hide-me add-btn point">Augmented Reality</li>
</ul>
</div>
</div>
<button type="button" class="btn btn-primary added-btn" title="Zur Übersicht." id="gesamt-weiter" >Zum Formular</button>
</div>
複選框:
<div class="">
<ul class="checker-wrap">
<li><input type="checkbox" id="0" value="Zielgruppendefinition" class="0 checker" name="checkbox-group[]"></li>
<li><input type="checkbox" id="2" value="Exposé" class="2 checker" name="checkbox-group[]"></li>
<li><input type="checkbox" id="3" value="Textdesign" class="3 checker" name="checkbox-group[]"></li>
<li><input type="checkbox" id="4" value="Anzeigenkampagnen" class="4 checker" name="checkbox-group[]"></li>
<li><input type="checkbox" id="5" value="Außenwerbung" class="5 checker" name="checkbox-group[]"></li>
<li><input type="checkbox" id="6" value="Bautafelgestaltung" class="6 checker" name="checkbox-group[]"></li>
<li><input type="checkbox" id="8" value="Website" class="8 checker" name="checkbox-group[]"></li>
<li><input type="checkbox" id="9" value="Social Media" class="9 checker" name="checkbox-group[]"></li>
<li><input type="checkbox" id="10" value="Digitale Präsentation" class="10 checker" name="checkbox-group[]"></li>
<li><input type="checkbox" id="11" value="Visualisierungen" class="11 checker" name="checkbox-group[]"></li>
<li><input type="checkbox" id="12" value="Virtuelle Begehung" class="12 checker" name="checkbox-group[]"></li>
<li><input type="checkbox" id="13" value="Augmented Reality" class="13 checker" name="checkbox-group[]"></li>
</ul>
</div>
的jQuery:
var $check = $(".checker-wrap");
$(".add-btn").click(function() {
var $li = $(this).toggleClass("hide-me added haken");
var li_class = $(this).attr('class').split(" ");
var $wrap = $li.closest('.label-wrap');
// trigger checkbox for form
if (($li).hasClass("added")) {
$check.find('.'+li_class[0]).addAttr('checked');
} else {
$check.find('.'+li_class[0]).removeAttr('checked');
}
$wrap.find('h1').toggleClass('top-added', $wrap.find('.added').length > 0);
});
所以,問題是,怎樣做我必須改變,如果li添加了類,複選框會被觸發,如果不是,複選框應該取消選中...
該片斷的作品,但不是在我的代碼。這不應該是一個問題,複選框是在一個隱藏的div? – Buntstiftmuffin
@Buntstiftmuffin你確定你在你的代碼中包含了jquery,並在'$(document).ready(function())中寫了所有的jquery' –
是的。 我添加了$ check.find('。'+ li_class [0])。trigger('click');在if語句之前。現在它的工作.... 所以現在它被觸發,如果點擊,它會檢查是否有類'添加'。如果沒有,則未選中。但不知怎的,它是被觸發的。這會導致任何問題嗎? – Buntstiftmuffin