Я пытаюсь создать случайные числа, чтобы их можно было назначать каждому экземпляру класса.
Причина, по которой я это делаю, заключается в том, что у меня есть содержимое с вкладками, и когда у меня есть два экземпляра модулей с вкладками, он сбрасывает атрибуты данных. Например:
- Моя страница содержит три вкладки. Эти вкладки в настоящее время имеют атрибут
data-item
1,2 и 3. - Затем я добавляю еще один модуль вкладок из трех вкладок. Когда я добавляю этот модуль на страницу,
data-item
сбрасывается на 1. - Короче говоря, на странице существует две вкладки с атрибутом
data-item
1, 2 и 3. - Поэтому, когда я нажимаю на одну вкладку, изменяется и другая вкладка (которая имеет дубликат
data-item
).
Когда пользователь щелкает вкладку, он отображает изображение, назначенное этому разделу (они связаны через data-item).
Поэтому я пытаюсь сгенерировать уникальные data-items
и назначить их для .tab
и .image
. Это объединит их в пару.
Однако при моем текущем подходе он назначает их всем вкладкам.
Текущий подход :
$(function() {
// generate random id for data item
var randomnNmber = Math.floor(1000 + Math.random() * 9000);
$('.imageWrapper .image').each(function () {
$(this).attr('data-item',randomnNmber);
});
$('.tabsWrapper .tab').each(function () {
$(this).attr('data-item',randomnNmber);
});
$(".tab").on("click", function(){
var tabID = $(this).attr("data-item");
event.stopPropagation();
$('.image').removeClass('active');
$('.image[data-item = '+tabID+']').addClass('active');
$(".tab").removeClass("active");
$(this).addClass("active");
});
});
<div class="tabbedContent">
<div class="imageWrapper">
<div class="image">
<!-- image -->
</div>
<div class="image">
<!-- image -->
</div>
</div>
<div class="tabsWrapper">
<div class="tab">
<!-- tab text here -->
</div>
<div class="tab">
<!-- tab text here -->
</div>
</div>
</div>