2011-01-27 11 views
2

私はポップアップしてドラッグ可能でサイズ変更可能なウィンドウを持っています。すべてが素晴らしいことを除いて、私はそれ内のdivのサイズを変更するためにサイズ変更ウィンドウが必要です。これは簡単にalsoResize: 'selector'を設定することで達成されますが、このウィンドウの各インスタンスは同じクラス名で同じdivを持ちます。あるウィンドウのサイズを変更すると、開いているすべてのウィンドウの内側のdivのサイズが変更されます。JQuery .resizable、a​​lsoResizeプロパティの子を選択する方法

$(chatWindow).draggable({ handle: '.dragHandle', containment: 'window', stack: '.chatWindow' }) 
    .resizable({ resize: function (event, ui) { 
     api.reinitialise(); 
    }, 
     alsoResize: chatWindow + ' > .chatTerminal', 
     start: function (event, ui) { 
      var currentPosition = api.getContentPositionY(); 
      api.scrollToBottom(); 
      var maxPosition = api.getContentPositionY(); 
      api.scrollToY(currentPosition); 
      var isAtBottom = (currentPosition == maxPosition); 
      $(chatWindow).data('isAtBottom', isAtBottom); 
     }, 
     stop: function (event, ui) { 
      if ($(chatWindow).data('isAtBottom')) 
       api.scrollToBottom(); 
     }, 
     minHeight: 125, 
     minWidth: 250 
    }); 

子要素の選択には使用できません。 alsoResizeはセレクタしかないので、.findを使うことはできません。明白な迅速な解決策は、内側のdivにウィンドウ名(新しいウィンドウごとに一意)を追加し、内側のdivにidセレクターを使用することです。 alsoResizeのセレクタを使用して子要素のみをピン止めするより良い方法があるかどうか不思議です。

答えて

1
var chatTerminal = '#' + channel + "_terminal"; 

alsoResize: chatTerminal 

channelメインウィンドウの固有のIDですので、ウィンドウを作成するときに、私はちょうど子供のdivの上に、同じ一意のIDを追加。次に、chatTerminalを使用して、alsoResizeオプションから参照することができます。私はこの回答をリストアップしています。誰も答えない場合は、私はそれを受け入れます。しかし、セレクタ文字列の中から子を選択する方が良い方は、私に教えてください:)

関連する問題