2012-04-05 11 views
0

これを解決する手助けができますか?jquery要素を取得して変数を作成する

jqueryを使用してブラウザウィンドウに収まるように、Flashオブジェクト/埋め込みコードのサイズを変更しています。下記の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); 

} 


任意のポインタが素晴らしいおかげだろう。

ジョシュ

答えて

3

編集:サイズ変更時にも実行する方がよいでしょう。

$(window).bind("resize.preziresize", function() { 
    $('div#prezi object') 
     .find('embed') 
     .andSelf() 
     .attr('height' , $(window).height()) 
     .attr('width' , $(window).width()); 
}).trigger("resize.preziresize"); 
+0

WOW - これはもっと簡単で、素晴らしい考え方です!どのように私はこれも文書の上で動作するようになるだろうか?ウィンドウのサイズ変更でのみ動作します。ありがとう – Joshc

+0

うーん、私はこのコードを自分の文書に追加しましたが、ウィンドウのサイズ変更でのみ動作します。ドキュメントの中にコードをラップして準備ができたら、 – Joshc

2
var $object =  $('#prezi').find("object"), 
    $objectEmbed = $object.find('embed'), 
+0

私はこれをやっていませんでした。 :-) – Joshc

-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); 
} 
関連する問題