2011-07-21 14 views
2

jQueryを使用して要素の幅を設定しようとしていますが、機能しません。ここで設定要素width()は変数では機能しません

は私のコードです:

var $padding = 30, 
$oddWidth = parseInt(Math.round($(window).width()*0.75)), 
$odd = $oddWidth-$padding; 

$('div:jqmData(role="content")').css({ 'margin-left':'25%'}).width($odd); 

誰も私を助けることはできますか?

+0

これは私のクイックjQuery.mobileテストではうまくいきます。正確に動作していないものがあり、コンソールにエラーが表示されていますか? – andyb

+0

それは私のために働いている! http://jsfiddle.net/Dg5qV/2/ 多分あなたのセレクターですか? – binarious

+0

コンソールにはエラーはなく、残りの25%が割り当てられています。したがって、initやselectorに関連付けることはできません。また、私は幅( '123px')または幅('75% ')を使用している場合、彼らはまたassingedです。私はそれがなぜ変わることができないのか分からない。 – frequent

答えて

2

次は私のために働いていますので、jQueryコードを次のようにラップしていますか?

$(document).ready(function() { 
    $("div:jqmData(role='page')").live('pageshow',function(){ 
     var $padding = 30, 
     $oddWidth = parseInt(Math.round($(window).width()*0.75)), 
     $odd = $oddWidth-$padding; 
     $('div:jqmData(role="content")').css({ 'margin-left':'25%'}).width($odd); 
    }); 
}); 

jQuery.mobileは、「ページ」は、完全にロードされているので、おそらくこれなしで、width()が正しくないか、<div data-role="content">がまだ存在していないときのために異なるdocument.ready()を持っています。

+0

これを見つけました...コードはif-else文の内側にあり、if部分の中の両方の変数を宣言し、else部分にこの書式を設定しました。それでも、感謝!あなたのコードをコピーして貼り付けてくれたので、それを認識できました。 – frequent

+0

は、width( "123px")らが働いていた理由も説明しています。 – frequent

関連する問題