2012-04-09 25 views
0

我有多個div,我必須爲每個div編寫這樣的代碼,並讓php通過循環$ NBR ++來更改id;最後。有沒有更快的方法來寫這一次,而不是每個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變量都設置在PHP的每個div的開頭。

那麼有沒有一種方法可以將它壓縮成一個可以寫入一次的代碼呢?還是必須在每個div之後寫入?

感謝您的幫助!

+0

如果你需要解釋/澄清,請讓我知道.... 這些jquery代碼佔用太多的空間:/ – 2012-04-09 21:44:24

+2

爲什麼你不能使用一個簡單的'for'循環? – Brad 2012-04-09 21:46:03

+0

我將不得不瞭解jQuery的.each()循環,我從來沒有使用它。 謝謝,我會試試看! – 2012-04-09 21:56:18

回答

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 2012-04-09 21:48:24

+0

感謝您的幫助... 在我的代碼中,jquery做了很多事情,一旦div被點擊,我只是舉兩個例子。 我會試試這個謝謝! – 2012-04-09 21:55:25

+0

所以我可以只添加新的'屬性'(我不知道該怎麼稱呼它們)像data-thumb-nbr到divs,然後讓jquery引用它們? – 2012-04-09 21:57:22