Çok fazla benzer soru var ve bunların çoğuna baktım, ancak bu soruna hitap eden bir şey bulamadık. Sorun, olay dinleyicilerini belirli bir sınıfa uygulamak (çoğunlukla başarı) uygulamak ve bu sınıfların her birinin ayrı bir sınıfa sahip kendi öğelerine sahip olmasıdır. JavaScript - Çeşitli Sınıfları Kullanırken Genişlet/Daraltma Sorunları
group.addEventListener("click", toggle, false);
group
function toggle() {
var contents = this.getElementsByClassName('content');
for (i = 0; i < contents.length; i++) {
if (contents[i].style.display == "block") {
contents[i].style.display = "none";
}
else {
contents[i].style.display = "block";
}
}
}
contents
group
içinde yuvalanmış başka sınıftır.
contents
bir sürü olacak, ama sadece bir avuç
group
.
o/istediğim budur o belirli group
altında her contents
, sadece olanları daraltır genişletir için .addEventListener
eser, ama click
olayı kullanma. group
'dan herhangi birine tıklıyorum ve sayfadaki contents
'un tümü genişleyecek/daraltılacaktır. Bunu nasıl düzeltebilirim? Bu arada, bunlar sadece kodun snippet'leri (gönderilecek çok şey var). Kapsam sağlamak için this
kullanmayı denedim, ancak yine de aynı sonuçları üretmesi nedeniyle yanlış yapıyorum. Şimdiden teşekkür ederim.
Düzenleme: SharePoint web bölümü için bu kullanıyorum HTML
group.innerHTML += String.format("<div class='group' style='display: block;'>" +
"<h3 style='display: inline-block; color: #000; margin: 0px; padding: 0px;'>{0}</h3>" +
"<img src='https:\/\/my.blah.com\/_layouts\/15\/images\/ecbarw.png' style='margin: 5px;' alt='Click to expand-collapse.' />" +
"{1}</div>", trimmedKey, groups[key]);
group.addEventListener("click", toggle, false);
hakkında
Daha. Bu, görüntülü reklam şablonlarının içinde yer alıyor. Bu yüzden, gönderilecek pek çok alakasız kod var, ancak group
ve contents
için alakalı HTML'yi ekleyeceğim.
var content = String.format('<div class="content" style="display: none; margin: 30px 0px;"><span id="{0}" class="ms-srch-item-title">' +
'<h3 class="ms-srch-ellipsis">{1}</h3>' +
'</span>' +
'<span style="margin-right: 10px;"><span style="font-weight:bold;">Assigned To: </span>{2}</span>' +
'<span style="margin-right: 10px;"><span style="font-weight:bold;">Due Date: </span>{3}</span>' +
'<span style="margin-right: 10px;"><span style="font-weight:bold;">Task Status: </span>{4}</span></div>', $htmlEncode(id + Srch.U.Ids.title), titleHtml, assignedTo, dueDate, status);
search.Grouping.push(grouping, content);
content
groups[key]
temel olarak
content
ile aynı şeydir.
Eğer HTML yapısı temelde neye benzediğini açıklamak Can ve Hangi unsurların etkilenmesi ve gerçekte etkilenmesi bekleniyor? Aynı anda iki sınıf seçmeniz gerekiyor mu? Sonra document.getElementsByClassName ('content anotherClass') 'gibi bir şey kullanın. – Xufox
"İçerik" veya "içerik" sınıf adı mıdır, çünkü kodda 'content' kullandığını görüyorsunuz, fakat 'content''den bahsettiğiniz soruda? – AKS
Yayını daha fazla bilgi içerecek şekilde düzenledim. Xufox - Aynı anda iki sınıfa ihtiyacım var, ama bunu hiç denemedim: 'document.getElementsByClassName ('content anotherClass')' bu yüzden bunu deneyeceğim. Ve AKS - içerik ve içerik teknik olarak iki farklı şeydir. İçerik 'içerik' dizidir, ancak aynı bilgiye atıfta bulunur. – LaLaLottie