меня такая ситуация:Jquery показать несколько элементов на Щелк
Две колонки с информацией один с вопросы и один с отвечает. Я хочу нажать на один вопрос и показать в следующем столбце ответ. Вопрос может иметь несколько ответов, поэтому мне нужно показать несколько элементов одним щелчком мыши.
Я написал код, принимая значение с некоторым data attribute
как это:
HTML
<div class="evidence">
<div data-answer=".A,.B">1</div>
<div data-answer=".B,.C">2</div>
<div data-answer=".A,.C">3</div>
</div>
<div class="answer">
<div class="A">A</div>
<div class="B">B</div>
<div class="C">C</div>
</div>
Jquery
$(document).ready(function(){
$('.evidence').on('click','div',function(){
$('.answer div').hide();
var ans = $(this).data('answer');
$(ans).show();
})
})
Вот является Demo Fiddle.
Это работает, но мой вопрос в том, есть ли способ улучшить мой код, избегая писать каждое имя класса в столбце ответа, возможно, показывая элементы с eq()
или более эффективным способом.
Благодаря
Вам все равно придется как-то рассказать Javascript, какие вопросы соответствуют тем ответам ... Я не вижу более эффективного способа, чем вы использовали. Другие возможности - «пометить» * ответы *, используя имена классов (например, ответ A может содержать теги 'this-answers-q1' и' this-answers-q3') или динамически генерировать весь HTML на основе объекта JS/массив вопросов/ответов? – Shai
Спасибо за комментарий @Shai Мне было интересно, в случае, если у меня слишком много ответов, я хочу избежать имен классов, также ответы могут отвечать нескольким вопросам. – DaniP