任何人都可以帮我解决这个问题。
我正在调整一些flash对象/嵌入代码以使用jquery来适应浏览器窗口。请参阅下面的HTML。
HTML
<div id="prezi">
<object id="prezi_3453246342644353463435463456435" width="1000" height="800">
<embed width="1000" height="800" ></embed>
</object>
</div>
JQUERY(此作品)
function preziresize() {
var $objectId = $('#prezi_3453246342644353463435463456435'),
$objectEmbed = $objectId.find('embed'),
windowWidth = $(window).width(),
windowHeight = $(window).height();
$objectId.attr( 'height' , windowHeight ).attr( 'width' , windowWidth );
$objectEmbed.attr( 'height' , windowHeight ).attr( 'width' , windowWidth );
}
$(document).ready(function() {
preziresize();
});
$(window).resize(function() {
preziresize();
});
我的问题
但是上面脚本的失败是我必须手动将我的对象的ID放入我的脚本中。 :(
在我的新脚本上,我正在尝试自动获取对象的id,并将其指定为变量。请参阅下面的功能。
function preziresize() {
var $objectId = $('#prezi').attr( 'id' ),
$objectEmbed = $objectId.find('embed'),
windowWidth = $(window).width(),
windowHeight = $(window).height();
$objectId.attr( 'height' , windowHeight ).attr( 'width' , windowWidth );
$objectEmbed.attr( 'height' , windowHeight ).attr( 'width' , windowWidth );
}
任何指针都会非常感谢。
乔什答案 0 :(得分:3)
编辑:您最好在调整大小时执行它。
$(window).bind("resize.preziresize", function() {
$('div#prezi object')
.find('embed')
.andSelf()
.attr( 'height' , $(window).height() )
.attr( 'width' , $(window).width() );
}).trigger("resize.preziresize");
答案 1 :(得分:2)
var $object = $('#prezi').find("object"),
$objectEmbed = $object.find('embed'),
答案 2 :(得分:-1)
这段代码没有多大意义,sinse $(“#prezi”)意味着你已经知道它的id,它是“prezi”。您的代码的另一个问题是$ objectId是一个字符串而不是jQuery对象,因此您不能使用.find。试试这个:
function preziresize() {
var $object = $('#prezi object'),
$objectId = $object.attr('id')
$objectEmbed = $object.find('embed'),
windowWidth = $(window).width(),
windowHeight = $(window).height();
$object.attr( 'height' , windowHeight ).attr( 'width' , windowWidth );
$objectEmbed.attr( 'height' , windowHeight ).attr( 'width' , windowWidth );
}