Функция множественного нажатия на Javascript

Я новичок в JavaScript, и я использую этот скрипт:

<script type="text/javascript">
$(document).ready
(function()
 {
     $('#apply').click(function()
     {
         $('#applyinfo').toggle("slow");
     });
 });
</script>

для функции при нажатии, когда я нажимаю применить ее, чтобы отобразить информацию о применении Div. эта функция работает, однако, если я создаю несколько идентификаторов применения, она не работает. Пожалуйста помоги мне с этим.

4 ответа

id должен быть уникальным, поэтому используйте общий класс для всех этих элементов

<script type="text/javascript">
  $(document).ready(function() {
    $('.apply').click(function() {
    //-^-- class selector
      $('#applyinfo').toggle("slow");
    });
  });
</script>

Если вы хотите связать функцию щелчка для нескольких элементов DOM, вы можете использовать ее как,

 $(document).ready(function() {
    $('#apply,#apply1,#apply2').click(function() {
      $('#applyinfo').toggle("slow");
    });
  });

с , разделитель. Однако вы не можете назвать одинаковые идентификаторы для различных элементов HTML. В этом случае выберите селектор класса, как предложено в комментариях @Pranav

Например,

  $('.applyClass').click(function() { .. } );

Попробуйте это решение:

$(document).ready(function() {
    $("[id$='apply']").click(function() {
      $('#applyinfo').toggle("slow");
    });
  });

id должен быть уникальным, поэтому наличие нескольких #apply а также #applyinfo не вариант Вместо этого переключитесь на классы.

Функция зависит от вашего HTML, хотя.

Если .applyinfo это ребенок .apply это работает:

HTML:

<div class="apply">Click here
  <div class="applyinfo">Toggle this info</div>
</div>

JQuery:

$(function() {
  $('.apply').click(function() {
    $(this).find('.applyinfo').toggle("slow");
  });
});

DEMO

$(function() {
  $('.apply').click(function() {
    $(this).find('.applyinfo').toggle("slow");
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="apply">Click here
  <div class="applyinfo">Toggle this info</div>
</div>

<div class="apply">Click here
  <div class="applyinfo">Toggle this info</div>
</div>

<div class="apply">Click here
  <div class="applyinfo">Toggle this info</div>
</div>

Если .applyinfo не дитя .apply нам нужно найти соответствующий div. Функция тогда становится:

HTML:

<a class="apply-1">Click</a>
<a class="apply-2">Click</a>
<a class="apply-3">Click</a>

<div class="applyinfo-1">Belongs to a.apply-1</div>
<div class="applyinfo-2">Belongs to a.apply-2</div>
<div class="applyinfo-3">Belongs to a.apply-3</div>

JQuery:

$(function() {
  $('[class^=apply-]').click(function() {
    var nr = $(this).attr('class').split("-").pop() ,
        selector = '.applyinfo-'+nr;
    $(selector).toggle("slow");
  });
});

DEMO

$(function() {
  $('[class^=apply-]').click(function() {
    var nr = $(this).attr('class').split("-").pop() ,
        selector = '.applyinfo-'+nr;
    $(selector).toggle("slow");
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a class="apply-1">Click</a>
<a class="apply-2">Click</a>
<a class="apply-3">Click</a>

<div class="applyinfo-1">Belongs to a.apply-1</div>
<div class="applyinfo-2">Belongs to a.apply-2</div>
<div class="applyinfo-3">Belongs to a.apply-3</div>

Другие вопросы по тегам