2012-01-03 14 views
0

私はクリック可能なアイコンを備えたツールバーを使って、仮想デスクトップのように機能するアプリケーションを持っています。アイコンがクリックされると、どのアイコンがクリックされたかに関する異なる内容のウィンドウのようなボックスが開かれる(動的に作成される)。ボックスをトップに移動する(Z-インデックス)

"moveOnTop()"(以下を参照)という関数は、ウィンドウの作成時に呼び出され、clickイベントはそのウィンドウにバインドされます。複数のウィンドウが開かれ、ユーザーが別のウィンドウの背後にあるウィンドウをクリックすると、クリックされたウィンドウが上部に移動します。問題の今

...

アイコンのひとつをクリックし、ボックスには、サムネイル画像の束を示す開かれ、サムネイルの1つをクリックするときに新しいウィンドウがその特定の画像で開かれています。画像が表示されているウィンドウを一番上に移動する必要がありますが、クリックされたサムネイルボックスのクリックイベントは、画像が作成された後に発生し、そのウィンドウがトップ。

私は他の言葉でこの問題を説明する方法を知らなかったし、あなたが私の意味を理解できることを願っています。私は何時間もこの問題に苦労しているので、本当に感謝しています。

Windows.prototype.buildWindow = function(){ 

    // a function that created the boxes 

    Windows.prototype.moveOnTop(); 
} 

Windows.openedImg = function(){ 

    // a function that creates the box with the clicked image 

    var thisWindow = $(this); 
Windows.prototype.getZindex(thisWindow); 
} 

Windows.prototype.moveOnTop = function(){ 

var boxes = $('.window'); 

    boxes.click(function() { 

     var thisWindow = $(this); 
     Windows.prototype.getZindex(thisWindow); 
    }); 
} 

Windows.prototype.getZindex = function(thisWindow){ 

var boxes = $('.window'); 
var maxZindex = 0; 

    boxes.each(function() { 

     var zIndex = parseInt($(this).css('z-index'), 10); 
     maxZindex = Math.max(maxZindex, zIndex); 
    }); 

thisWindow.css("z-index", maxZindex + 1); 
} 
+0

代わりのzインデックスを上書きするいくつかのクラス名を追加しない理由をZ-インデックスをシャッフルします。こうすることで、クラス名を削除すると元のz-indexに戻ります。 –

+0

このウィンドウオブジェクトを作成した方法を掘り下げていないと言ってください: 'Windows.prototype.buildWindow'、' Windows.openedImg'。そして、あなたは 'Windows.prototype.func();を使って物事を呼びます。私はそれを1つではなく全て気に入っています。 – Chad

+0

建設的な批判のために@チャドをありがとう、それは非常に報われました! *一口* – holyredbeard

答えて

0

HTML:

<img onclick="openWindow(true)" ... /> 

Javascriptを:

function openWindow(doNotGoToTop) { 
    ... //open window 
    if (!doNotGoToTop) { 
     ... //go to top 
    } 
}