1

これは機能しますが、初めてホバーすると何も読み込まれません。マウスをオフにしてからオンにすると、ajax が読み込まれました。最初のホバーでajaxをロードしたい。

index.html

<span title="" id="test" class="tooltip"></span>

tooltip.html

<span id="test">this is ajax</span>

jquery

$('.tooltip').hover(function () {
    var id = $(this).attr('id');
    $.get('tooltip.html #'+id, function(data) {
        $('#'+id).attr('title', data);
    });
});
4

3 に答える 3

1

ブラウザーの組み込みのツールチップ (ホバー時にタイトルを表示) に依存しているようです。そのツールチップはイベントによってトリガーされる可能性があります。つまり、タイトルを動的に追加した後、実際にツールチップをトリガーするにはmouseover別のイベントが必要です。mouseover設計どおりに動作しているようです。

于 2012-06-19T14:41:48.037 に答える
1

これは、最初にホバーしたとき (実際には mouseenter イベント)、ajax 関数がデータをロードしてタイトルを変更しますが、mouseenter イベントは既に発生しており、ツールチップは既に開いているため、手遅れです。

元の要素のタイトルを変更するのではなく、ツールチップを直接変更することをお勧めします。

実際にすべきことは、両方を変更し、ホバー機能を変更してタイトルをチェックすることです。これにより、次回ホバーが発生したときに、情報を再度読み込む必要がなくなり、既に入力したタイトルを参照できるようになります。

それが役立つことを願っています:)

于 2012-06-19T14:44:47.100 に答える
0

前に指摘したように、問題は、要素にカーソルを合わせるとすぐにブラウザーが組み込みのタイトルを表示し、ajax がコンテンツを読み込んで追加するのに時間がかかることです。

多くのツールチップ プラグインのいずれかを使用することをお勧めします: https://www.google.com/search?q=tooltip+jquery+plugin

私はqTipで素晴らしい経験をしました。セットアップが簡単で、スタイルの変更も簡単です。

于 2012-06-19T14:46:59.723 に答える