2011-11-28 17 views
0

テーブル内のセルのツールチップを実装しています。ターゲットのdata-message属性を取得する必要があります。jQueryツール:ツールチップ、jQueryの「this」属性への参照

$("#pricing_plans_table .sku_tooltip").tooltip({ 

     // each trashcan image works as a trigger 
     tip: '#' + $(this).attr('data-message'), 

     // move tooltip a little bit to the right 
     offset: [0, 15], 

     // there is no delay when the mouse is moved away from the trigger 
     delay: 0 
    }); 

これは機能しません。私は「[オブジェクトオブジェクト]のツールチップを見つけることができません」というメッセージが表示されます...ターゲットを正しく参照する方法がわかりません。

+0

これはすべて正しく見えますが、私たちはhtmlも見ることができますか? –

+0

console.log '$(this).attr( 'data-message')' – CamelCamelCamel

答えて

0

thisのような地図の中には使用できないと思います。試してみてください:

$("#pricing_plans_table .sku_tooltip").each(function(i,el) { 
    var tipstr = $(this).attr('data-message'); 
    $(this).tooltip({ 
     tip: '#' + tipstr, 
     offset: [0, 15], 
     delay: 0 
    });  
}); 
+0

'this'はあなたが知っている限り、あなたが望むすべてのマップの中で' this'を使うことができます。この例では、OPは 'this'が外部の文脈にあるものを参照するときに' tooltip'と呼ばれるオブジェクトを参照します。ちょうど明確化: 'this'は完全に有効です、あなたはちょうど' this'が何であるか知る必要があります! –

+0

@Chadまあ、AdamTerlsonの答えに対するコメントを見てください。 – Blazemonger

+0

私は印象に残っていました。それは私の誤解です。コメントを削除しました。 – Chad

1

あなたが値を取得し、各要素のtooltipプラグインを初期化するために.each()ループを使用することができますが、私はあなたがtooltipプラグイン内でこれを行うかどうかはわかりません(内部的にこれはおそらく、すべてのプラグインですんとにかく):

$("#pricing_plans_table .sku_tooltip").each(function (index, value) { 
    var $this = $(this); 
    $this.tooltip({ 
     tip : '#' + $this.attr('data-message'), 
     offset : [0, 15], 
     delay : 0 

    }); 
}); 
+0

@Chad '.each()'ループを使う理由は正しい 'tooltip'インスタンスに正しい' data-message'属性を割り当てることです。そうでなければどうしますか? – Jasper

+0

私は彼が割り当てていた1つのアイテムがあるという印象を受けました。それは私の誤解です。コメントを削除しました。 – Chad

+0

チャドは私がしたのと同じ仮定をしました:これは単一の要素でした。代わりに、OPは複数のツールチップを作成しようとしているようです。 –

関連する問題