0

我在一堆不同的东西中经常使用 JQuery Cycle 幻灯片。头脑中总是有相同的交易:

<script type="text/javascript">
  $(document).ready(function() {
    $('.slideshow').cycle({
      fx: 'fade',
      etc...'
    });
  });
</script>

然后是身体上的照片:

<div class='slideshow'>
  <img src='photo1.jpg' width height />
  <img src='photo1.jpg' width height />
  <img src='photo1.jpg' width height />
  etc...
</div>

不过这一次,我正在为供应商构建一个搜索引擎。每个返回的供应商都需要在他们的展示框中放一个小幻灯片。我使用 vendor_id 来保持幻灯片类的唯一性,但我不得不将 javascript 向下移动到正文中,这实际上是我的查询结果的一部分:

while($rst = mysql_fetch_array( SQL is happening... )) {
print("
  <script type='text/javascript'>
  $(document).ready(function() {
    $('.s$rst[vendor_id]').cycle({ 
    fx:     'fade', 
    etc...
    });
  });
  </script> 
  <div class='s$rst[vendor_id]'>
    <img src='$rst[prime_image]' width height />
    <img src='$rst[second_image]' width height />
    <img src='$rst[third_image]' width height />
    etc...
  </div>
");}

工作得很好,在我按下它并继续做其他事情之前,任何人都可以想到这个方法的问题吗?烧掉不必要的内存或类似的东西?

谢谢,J

4

1 回答 1

0

为什么不将这些调用包装cycle()在一个函数中?

您将保存 count($rst) 次 strlen() - strlen(functionname+parameters) 并且它看起来会更干净。您甚至可以将您的 cycle() 保存在标题中......或者更好......在专用的 file.js 中。(如果你喜欢的话,它甚至可以包含一个包装调用的 jquery 插件!)

while($rst = mysql_fetch_array( SQL is happening... )) {
print("
  <script type='text/javascript'>
  $(document).ready(function() {
    $('.s$rst[vendor_id]').cyclecaller(cycleoptions);
  });
......
于 2012-09-16T03:31:20.500 回答