0

我想要做的是,只有当我点击一个divwith 时id="$project['slug']",它才会加载iframe里面的那个div. 因此,我src从 中删除了该属性iframe,并将其添加到onclick事件中。我有这个HTML/PHP

<div class="box" id="<?=$project['slug']?>" onclick="load_frame();">
    <iframe id="frame_<?=$project['slug']?>" frameborder="0"></iframe>
</div>

Js

function load_frame() {
    id = location.hash.replace('#', '');
    var source = "<?php echo $project['video']; ?>";
    $('#frame_'+id).attr("src", source);
}

不幸的是,当我检查它时,iframe它显示:src="<?=$project['video']?>"而不是变量持有的值。你知道我做错了什么吗?谢谢你!

4

3 回答 3

2

jQuery 是一种客户端语言,只有在 DOM 元素被渲染后才能访问它们。因此,您需要做的是将$project['video']变量存储在隐藏字段中,然后使用该id字段访问渲染数据。

另外,我注意到你应该使用<?php而不是<?

你可以试试这样的。

<div class="box" id="<?php echo $project['slug']; ?>">
    <iframe id="frame_<?php echo $project['slug']; ?>" frameborder="0"></iframe>
    <input type="hidden" id="<?php echo $project['slug']; ?>" value="<?php echo $project['video']" />
</div>

然后在jQuery中做:

$(document).ready(function(){
    $('.box').click(function(){
        var slug = $(this).attr('id');
        var source = $('input#' + slug).val();
        $('iframe#' + slug).attr("src", source);
    });
});
于 2012-12-26T11:12:42.520 回答
1

在html页面上添加隐藏输入

 <input type="hidden" id="hidsource" value="<?php echo $project['video']" />

像这样在js中编辑你的函数

function load_frame() {
id = location.hash.replace('#', '');
$('#frame_'+id).attr("src", $('input#hidsource').val());

}

希望这会奏效

于 2012-12-26T11:21:20.860 回答
0

您可能没有在服务器上启用速记语法。尝试使用标准 PHP:

<?php echo $project['slug']; ?>
于 2012-12-26T11:12:14.447 回答