我想要做的是,只有当我点击div
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']?>"
而不是变量所持有的值时。
你知道我做错了什么吗?
谢谢!
答案 0 :(得分: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);
});
});
答案 1 :(得分: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());
}
希望这会有用
答案 2 :(得分:0)
您可能没有在服务器上启用shorthand syntax。请尝试使用标准PHP:
<?php echo $project['slug']; ?>