javascript - 不必每次循环都重复脚本

标签 javascript php jquery html

我有以下在循环内发生的脚本。我该如何做到这一点,这样我只需将其放置在页面底部一次,而不需要对类进行硬编码?该脚本针对每个 <li> 出现。这看起来很笨重。

这是脚本

  <script>
    $(".<?php echo strtolower(get_field('code'));?>_btn").click(function(){
        $("#<?php echo strtolower(get_field('code'));?>").on('show', function () {

            $('iframe.fohl-mobile').attr("src","http://www.psfk.com/home#<?php echo get_field('code');?>");

        });
    });
  </script>

这是循环中重复的整个片段

 <li>
    <a data-toggle="modal" role="button" class="<?php echo strtolower(get_field('code'));?>_btn" href="#<?php echo strtolower(get_field('code'));?>">&nbsp;</a>

    <img class="lazy" alt="<?php the_title();?>" src="<?php echo site_url('wp-content/fohl/holder.png');?>" data-original="<?php echo site_url('/wp-content/fohl/products/').strtolower(get_field('code'));?>.png" />
    <noscript><img src="<?php echo site_url('/wp-content/fohl/products/').strtolower(get_field('code'));?>.png” alt="<?php the_title();?>"/></noscript>

    <div class="title"><?php the_title();?>

    <div id="<?php echo strtolower(get_field('code'));?>" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
        <iframe class="fohl-mobile" height="500" width="330" frameborder="0"  src=""></iframe>
      <div class="modal-footer">
        <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
      </div>
    </div>
    <script>
        $(".<?php echo strtolower(get_field('code'));?>_btn").click(function(){
            $("#<?php echo strtolower(get_field('code'));?>").on('show', function () {

                $('iframe.fohl-mobile').attr("src","<?php echo site_url('/home#'.get_field('code'));?>");

            });
        });
    </script>
 </li>

最佳答案

也许这对你有用?它未经测试,但从概念上来说似乎没问题。我会测试,但你没有发布 JSFiddle。基本上,您的主触发器可以是一个通用类,而不是循环每次迭代的不同类,它引用其父级来获取更具体的内部内容。

HTML

<a data-toggle="modal" role="button" class="class_for_any_btn" href="#<?php echo strtolower(get_field('code'));?>">&nbsp;</a>

JS

<script>
        $(".class_for_any_btn").click(function(){
            $(this).parent().on('show',"#<?php echo strtolower(get_field('code'));?>", function () {

                $('iframe.fohl-mobile').attr("src","<?php echo site_url('/home#'.get_field('code'));?>");

            });
        });
</script>

关于javascript - 不必每次循环都重复脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17711250/

相关文章:

php - 如何编写 OSClass 自定义查询以从数据库中获取结果

php - 如何使用 Laravel 5.5 从多态关系中检索数据?

php - 尝试使用 ftp_put 函数上传 .zip 文件,但无法上传大文件(超过 1 MB)

javascript - 水平和其他定向滚动

jquery - 单击时打开自动完成功能

javascript - node.js 在服务器目录中提供 HTML 文档

javascript - Chart.js 属性 'type' 的类型不兼容。类型 'string' 不可分配给类型 '"行” | "bar"| "scatter"

javascript - 通过 Google Maps API v3 访问 ExtendedData 信息

javascript - Highchart 值序列映射

javascript - 我如何使用一个 "if"来完成相同的工作?