2012-04-23 16 views
0

私はnanoscroller.jsとtiptip.jsを使用していますが、私の質問では特定のライブラリがそれほど重要ではないかどうかはわかりませんが、jQueryのツールチップ内のカスタムjQueryのスクロールバー

私はツールヒントを持っていますが、私は動作しているスクロールバーがあります。別々に使用する場合。

私の目標は、ツールチップ内で作業用のカスタムスクロールバーを使用することです。

HTML:

<a class="tooltip">Open tooltip</a> 

<div class="tooltip-html" style="display:none;"> 
    <div id="main-content" class="nano"> 
     <div class="Content"> 
      <div class="blue"> 
      </div> 
     </div> 
    </div> 
</div> 

JS:私は上記の約気づい

var tip_html = $('.tooltip-html').html(); 
$('.tooltip').tipTip({activation: 'click', maxWidth: "230px", defaultPosition: "bottom", keepAlive: true, content: tip_html }); 
$("#main-content.nano").nanoScroller(); 

まず最初:nanoscrollerはHTMLのみの最初のセットに適用されたこの構成では、ありませんツールチップ内にあるセット

それで、まずhtmlをつかんでツールチップに追加する前にスクロールバーを適用しました。これはツールチップにスクロールバーを適用しましたが、機能しませんでした。

ここではさまざまなアプローチを試してみました(一致するすべてのID、いつ呼び出すか、など)、私は間違いなく止まっています。どんな助けでも感謝しています!

答えて

1

これらのライブラリを使用していないと、私は、tiptipはDOMノードのコピーを作成し、nanoScrollerはそれが適用されているノードへの参照を保存すると考えています。

これらのふたつのふるまいは、あなたが見ているものを引き起こす可能性があります:$(#mail-content.nano)は常に元のHTMLを指しています。そして、スクロールバーを追加した後にHTMLをコピーすると、元のノードをスクロールしようとしています。

したがって、tipTipの作成後にnanoScrollerを追加してみてください。この(未テスト)のようなもの:

var tip_html = $('.tooltip-html').html(); 
$('.tooltip').tipTip({ 
    activation: 'click', 
    maxWidth: "230px", 
    defaultPosition: "bottom", 
    keepAlive: true, 
    content: tip_html, 
    enter: function() { 
     $(this).find("div.nano").nanoScroller(); 
    } 
}); 

これは、新しいDOM要素にnanoScrollerを追加し、先端が開かれたときに実行だ機能を、追加するtipTipのenterプロパティを使用しています。

+0

上記の 'enter:'関数は、正しい要素を選択するために少し微調整する必要があります。私が言ったように、私はどちらの図書館も使いませんでしたが、これは検査されていません。 – mpdaugherty

+0

これは間違いなく問題を引き起こしています。nanoScrollerターゲットを適切な要素にすることは依然として問題です。うまくいけば、私はその作品を通して働くことができます。 .find()のバリエーションをたくさん試して、ツールヒントが生成された後に元のhtmlのクラスを変更し、それをターゲットにするために親divを使用すると、すべて失敗しました。ありがとう – mstef

関連する問題