【问题标题】:efficicent way to write multiple jquery functions编写多个jquery函数的有效方法
【发布时间】:2012-04-09 21:41:54
【问题描述】:

我有多个 div,我必须为每个 div 编写这样的代码,并让 php 通过循环 $NBR++ 来更改 id;在末尾。有没有一种更快的方法来编写一次,而不是为每个 div 设置唯一的?

   // 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之后?

感谢您的帮助!

【问题讨论】:

  • 如果您需要解释/澄清,请告诉我....这些 jquery 代码占用了太多空间:/
  • 为什么不能使用简单的for 循环?
  • 我将不得不了解 jquery 的 .each() 循环,我从未使用过它。谢谢,我会试试看!
  • @DankPiff 我认为他在谈论 php 迭代以生成那些 div。
  • 哦,这就是我现在使用的,但我想将所有代码合并到一个脚本中,而不是让 PHP 为每个 div 单独编写。整个网站是动态的

标签: jquery simplify


【解决方案1】:

在顶部添加这个并删除所有其他脚本,

 <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) 数据属性data-thumb-nbr

【讨论】:

  • 感谢您的帮助...在我的代码中,一旦单击 div,jquery 会执行更多操作,例如,我只放了两个。我试试看,谢谢!
  • 那么我可以添加新的“属性”(我不知道该怎么称呼它们),比如 data-thumb-nbr 到 div,然后让 jquery 引用它们吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-03
  • 2021-01-19
相关资源
最近更新 更多