0

ここで提起した別のスレッドに基づいて、作業中のWebサイトにqTip jqueryプラグインqTipプラグインを使用しています:スタックオーバーフロースレッド

私の質問は、基本的に現在のタブ メニューに基づいてタイトル属性を設定する画面の上部に沿って実行されているナビゲーション バーがあり、これらはすべて JavaScript 配列内に格納されているということです。

たとえば、画面の上部にメニュー A、メニュー B、メニュー C の 3 つのメニュー オプションが表示されているとします。

また、ナビゲーション バーで選択したメニュー オプションに基づいて、タイトル属性を設定したナビゲーション バーの右端に情報画像を配置しています。

例えば:

Menu A => myRole[0] = "Admin"
Menu B => myRole[1] = "Manager"
Menu C => myRole[2] = "Guest"

基本的に、ユーザーがナビゲーション バーの各メニューをクリックすると、情報画像のタイトル属性を「管理者」、「マネージャー」、または「ゲスト」に設定します。

起動時に qTip プラグインが動作し、ホバーすると「管理者」と表示されますが、メニューをメニュー C に変更すると、「ゲスト」ではなく「管理者」と表示されます。

見た目からは、画面のフッターに配置した qTip プラグインを呼び出しているようには見えません (以下の実際のコードを参照)。

javascript配列内のメニューオプションとピックアップ値をクリック/変更するたびにqTipが確実に起動するようにする方法はありますか?

<script type="text/javascript" src="jquery.qtip-1.0.0-rc3.min.js"></script>



<script type="text/javascript"> 
$(document).ready(function()
{
   $('div#infoi img[title]').qtip({
      position: { 
         adjust: { x:-110, y:0 },
         corner: {
            target: 'bottomLeft',
            tooltip: 'topMiddle'
         }
      },
      style: {
        width: 250,
        padding: 5,
        background: '#E7F1FA',
        color: 'black',
        textAlign: 'center',
        border: {
          width: 3,
          color: '#65a9d7'
        },
        tip: 'topRight'
      }
   });
});
</script>

ありがとう。

4

1 に答える 1

0

メニューが最初にページに存在し、後で他の要素を追加するか、後で要素を置き換える場合は、その要素のツールチップを再初期化する必要があります。

おっしゃったように、選択に基づいてサイド部分のテキストのみを変更しているようです。両方のタイトルを変更してから qtip 関数を再初期化する必要があるため、すべてのコードを次のような関数に配置することをお勧めします

var qtipset = 関数(){
      $('div#infoi img[タイトル]').qtip({
      位置: {
         調整: { x:-110, y:0 },
         コーナー: {
            ターゲット: 'bottomLeft',
            ツールチップ: 'topMiddle'
         }
      }、
      スタイル: {
        幅: 250,
        パディング: 5,
        背景: '#E7F1FA',
        色:「黒」、
        textAlign: 'センター',
        国境: {
          幅: 3,
          色: '#65a9d7'
        }、
        ヒント: 'topRight'
      }
   });
     }

画像のタイトル属性を変更した直後に、選択したメニューテキストで画像のタイトルを更新しているJavascriptでも、この関数を次のように呼び出します。これにより、タイトルqtipset(); が再読み取りされ、ページのqtip要素が初期化されるため、次回ホバーするときに正しいデータで qtip 関数を呼び出します。

于 2013-09-18T04:32:59.063 に答える