2011-12-14 11 views
0

私は現在1つのサイトを改善しています - http://vse-v-nas.com.ua(誰かがより深く見たい場合は、再生ステップのためのリンク)。コンテンツの'resize'イベントハンドラが発生しません

右列:

// html 
<td id="sidebar-right">...</td> 
// css 
#sidebar-right { 
    width: 209px; 
    padding: 10px; 
} 

つまり$( '#サイドバーの右')の幅は、()229px とそれはクロームであるが、それは '245px' 値のを持っているのでなければなりません。 FF 8.0.1とIE 9.0.3

なぜ私はFFとIEではChromeのコンテンツの右側の幅が他のものであるのか分かりませんが、 ですが、その画像は右上の$( ' img.header-image '))は、(Chromeのように)下の右の列と同じです。

イメージと右側のサイドバーの幅を同じにするために、タグの最後の前にbodyにスクリプトを追加しました。

<script type="text/javascript" language="javascript"> 
    $(document).ready(function() { 
    var $headerImage = $('img.header-image'); 
    var $rightSidebar = $('#sidebar-right'); 

    // in this line $rightSidebar.width() is 229px in every browser... 

    $rightSidebar.resize(function() { 
     // event handler doesn't occur after width changing in IE and FF... 
     alert($headerImage.width()); 
     alert($(this).width()); 
    }); 
    }); 
</script> 

イベントハンドラは発生しませんが、ページロード後にサイズが変更されています。 誰でも私にこの問題の解決を手伝ってもらえると思います!

答えて

2

サイズ変更ハンドラは、ページのdiv /要素では機能しません。 http://benalman.com/projects/jquery-resize-plugin/をチェックしてください。このような状況を処理するために作成されたプラグインです。

+0

これは動作します、ありがとうございます! –

1

上記のようなサウンドは、あなたの直接の質問に答えています。なぜそれがSafariとFirefoxで245であるのかについては、さまざまなブラウザで想定されるデフォルトのCSS、おそらく多くの表を使用しているため境界線の間隔にあるかもしれません。内側のコンテンツが大きいほど、サイドバーのdivは229pxよりも大きくなります。

+0

こんにちは、デビッド、私が書いたように、私は以前の開発者の後にこのサイトを改善しています。とにかく、後で.NETのもとで書き直すつもりです。しかし、今は正しく動作するはずです。 –

関連する問題