5

onchangeイベントが発生したときに、.cssを使用してselect要素の幅を更新しています。HTMLの場合:

<select name="city_search" id="city_search" onchange='resetDropDown("#state_search");'>
<select name="state_search" id="state_search" onchange='resetDropDown("#city_search");'>

JSで

function resetDropDown(elementObj)
{
    var selectBoxWidth = $(elementObj).attr('id') == 'college_search' ? 143 : 113;
    $(elementObj).css({width:selectBoxWidth});
}

何らかの理由で、属性の幅は正しく変更されますが、要素が検査されるかページが更新されるまで、chromeは変更を表示しません。要素スタイルに適用された変更をChromeに強制的に表示させる方法はありますか?

前もって感謝します。エリザベス

4

3 に答える 3

9

この問題は、Webkitにスタイルの変更を強制的に再描画/再描画させることで解決できます。あなたはこの答えを参照することができます:https ://stackoverflow.com/a/3485654/567101

于 2012-08-13T16:03:13.777 に答える
1

非常に単純な解決策が私のために働いた。に変更$(document).readyしてみてください$(window).load

問題は、ドキュメントの準備にある可能性があります。Windowsがロードされた後に関数が実行されると、機能する可能性があります。

于 2016-09-01T21:35:45.080 に答える
0

OnChangeイベントは、オブジェクトが変更され、フォーカスが失われた場合にのみ発生します。テキスト入力にキーアップイベントを使用したり、チェックボックスにイベントをクリックしたりするなどの回避策を使用できます。選択変更のコンテキストによっては、変更イベントを手動でトリガーする必要がある場合があります。ユーザーが別のオプションを選択したときにselect要素が変更された場合は、onchangeではなくonclickが機能することをお勧めします。

于 2012-08-13T16:02:17.783 に答える