2012-04-09 6 views
0

У меня есть несколько div, и я должен написать код, подобный этому для каждого div, и изменить php на id путем циклического перехода через $ NBR ++; в конце. Есть ли более быстрый способ написать это один раз, а не иметь это уникальное для каждого div?эффективный способ записи нескольких функций jquery

// when $NBR = 1 
    <div class="playbutton<?php echo $NBR?>"> 
     <script> 
      $(".playbutton<?php echo $NBR?>").click(function() 
       { $(".playbutton<?php echo $NBR?>").hide(); 
       $('#songpicture').attr("src", "<?php echo $thumb[$NBR]?>"); 
       }); 
     </script> 
    </div> 


    // when $NBR = 2 
    <div class="playbutton<?php echo $NBR?>"> 
     <script> 
      $(".playbutton<?php echo $NBR?>").click(function() 
       { $(".playbutton<?php echo $NBR?>").hide(); 
       $('#songpicture').attr("src", "<?php echo $thumb[$NBR]?>"); 
       }); 
     </script> 
    </div> 

Это продолжается 15 раз ... и т. Д. Вся переменная php устанавливается в начале каждого div с PHP.

Так есть способ, которым я могу «сжать» это в один код, который можно было бы написать один раз? Или это должно быть написано после каждого div?

Благодарим за помощь!

+0

Если вам нужно объяснить/уточнить, пожалуйста, дайте мне знать .... Эти коды jquery занимают слишком много места:/ –

+2

Почему вы не можете использовать простой цикл 'for'? – Brad

+0

Мне нужно узнать о цикле .each() для jquery, я никогда не использовал его. Спасибо, я попробую! –

ответ

5

Добавьте это в верхней части и удалить все другие сценарии,

<script> 
    $(function() { 
    $(".playback_divs").click(function() { 
     $(this).hide(); 
     $('#songpicture').attr("src", $(this).data('thumb-nbr')); 
    }); 
    } 
</script> 

И изменить HTML, как,

<div class="playback_divs playbutton<?php echo $NBR?>" data-thumb-nbr="<?php echo $thumb[$NBR]?>"> 

Обратите внимание на HTML изменения

1) новый класс playback_divs добавлен div.

2) данные attr data-thumb-nbr.

+0

Право на вас SKS - почти такая же разметка только что созданная – mikevoermans

+0

Спасибо за вашу помощь ... В моем коде есть еще много вещей, которые jquery делает после нажатия на div, я просто положил два, например. Я попробую спасибо! –

+0

Итак, могу ли я просто добавить новые атрибуты (я не знаю, что их называть), например data-thumb-nbr для divs, а затем связать их с jquery? –

Смежные вопросы