0

我有一个项目页面,有时有一个相关的 youtube 链接。当它完成时,fancybox 将在fancybox 窗口中单击打开链接。我的链接由#youtube1 等计数器标识。有没有更好的方法来做到这一点,以便每次循环时都不必重做 javascript?

<?php mysql_data_seek($projects,0); $counter = 1; while ($row_projects = mysql_fetch_assoc($projects)) { ?>
<div class="img<?php $count=$counter++; echo $count; ?>" style="height:212px; overflow:hidden;">
    <h3><?php echo $row_projects['project_name']; ?></h3>
    <p id="project-content"><?php echo stripslashes($row_projects['project_content']); ?><br><?php if(!empty($row_projects['youtube_link'])) { echo '<a id="youtube'.$count.'" href="'.$row_projects['youtube_link'].'" title="'.$row_projects['project_name'].'" class="link1">View project</a>'; } ?>
    <script>
    $(document).ready(function() { 
        $("<?php echo '#youtube'.$count ?>").click(function() {
            $.fancybox({
                    'padding' : 0,
                    'autoScale' : false,
                    'transitionIn' : 'fade',
                    'transitionOut' : 'fade',
                    'title' : this.title,
                    'width' : 680,
                    'height' : 495,
                    'href' : this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
                    'type' : 'swf',
                    'swf' : { 'wmode' : 'transparent', 'allowfullscreen' : 'true' }
            });
            return false;
        });
    });
    </script>
    </p>
    <p class="font1"><span><?php echo $row_projects['project_bold']; ?></a></span></p>
</div>
<?php } ?>
4

1 回答 1

0

让你的选择器是通用的:

$("a.link1").live('click', function() {

那么就不需要在循环中重复这个函数了。

于 2012-10-25T22:47:31.160 回答