2010-11-29 13 views
1

わかりましたので、ユーザーにはASP.NETにはない複数選択ドロップダウンリストが必要です。そのため簡単な解決方法は私ですリストボックスを複数選択して使用し、サイズ1でそれらを開始し、onmouseoverでサイズを10に変更します。onmouseoutは1に戻します。十分に単純で、ユーザーはその違いを知らない。JavaScriptの代わりに上記の代わりにドロップダウンエリアを下に展開する

私の問題は、Webアプリケーションでいくつものコントロールがあるので、これらのリストボックスを他のコントロールよりも高いzインデックス番号に設定しているため、問題が発生します。リストボックスページの下部に近づくと、リストはページの下部に表示されますが、onmouseoutはリストボックスのサイズをリセットするため、ページをスクロールできません。

誰かが私がそれをダウンの代わりに拡張するために設定する必要があることを知っていますか?

編集また、一部には「なぜあなただ​​けのページでより高い位置にリストボックスを再配置していない」求めることができる、これは実行可能な選択肢ではない理由は、私が40匹の対照よりも持っています(つまり、あるセクションの投資情報、別のセクションの投資情報、他のセクションの投資情報)

+0

はjqueryのオプションですか?私が現在使っている素敵な複数選択プラグインがあります。 – Silkster

+0

正直なところ私は新人のプログラマーで、約2ヶ月間それをやっているかもしれません。私はJaveryで作業する方法を知らないので、あまりにも慣れていません。 – IWriteApps

答えて

1

EDIT:jQuery以下のバージョンはよりコンパクトになり、私の意見では、より簡単に理解することができます。

Glo、あなたが現在役立っているコードは、特に私たちが与えたものを変更したり、私たちが記述しているものを実装するのが難しいと思われるためです。とにかく、これはIE7、Firefox、Operaで意図したとおりに動作します。 SafariとChromeはそれに変わってしまう:http://jsfiddle.net/bUFzq/35/http://www.plus2net.com/html_tutorial/html_frmddl.phpから変更)。

CSSは、選択した位置をデフォルトの配置に対して相対的にできるようにします。要素は、他の配置された要素に対してのみ配置できます。 `position:relative; 'あなたがそれを動かすまで要素を残して、絶対的および固定的ではありません。また、最も近い位置にある祖先のエッジに対して相対的に配置されます。 (IT業界は、Yを上向きではなく下向きに増加させるという不幸な慣習を持っています。

element.offsetHeightは、要素の計算された高さです。 element.style.bottom(その頂点の左上、右端のように)は、エレメントの中心の方向に、エレメントのオフセットを対応するエッジから設定します。 setAttributeはかなり自明です。あたかも実際にHTMLを編集しているかのように動作します。 Mostのプロパティelement.style(他のすべてのオブジェクトにはない)は、同様の名前のCSSプロパティを表し、変更します。たとえば、element.style.backgroundColorはbackground-colorプロパティを設定します。

addEventは、Dustin DiazのRock Solid addEvent()からコピーされた関数で、ブラウザはイベントの実行方法に非常によく似ていないためです。しかし、もし私が単一のスクリプト領域内で作業していなかったならば、彼のスクリプトを別のファイルに入れて、別のファイルに埋め込んでいたでしょう。私は `var addEvent = init(); 'を実行しました。それは良いコードの良い例ですが、ソースをスクロールする必要はありません。

mouseover & mouseoutは何らかの理由で(少なくともjsFiddle内で)正しい位置で開始しないため、applyを使用して明示的に呼び出された実際のリスナーです。リスナーがこの順番で呼び出された場合にのみ、それがそこに到達します。

+0

これは私のことですやった。すべての項目は、JS内でサイズ変更機能を起動するonmouseover/onmouseoutを持つリストボックスです。それを投稿してくれてありがとう! – IWriteApps

関連する問題