0

これがツールチップ スクリプトhttp://www.alessioatzeni.com/blog/simple-tooltip-with-jquery-only-text/です。すべてのブラウザでうまく機能しますが、IE ではデフォルトのツールチップが無効になっていません。

次のスクリプトを更新してデフォルトのツールチップを無効にするにはどうすればよいですか?

<script type="text/javascript">
$(document).ready(function() {
   // Tooltip only Text
   $('.masterTooltip').hover(function(){
         // Hover over code
         var title = $(this).attr('title');
         $(this).data('tipText', title).removeAttr('title');
         $('<p class="tooltip"></p>').text(title).appendTo('body').fadeIn('slow');
    }, function() {
         // Hover out code
         $(this).attr('title', $(this).data('tipText'));
         $('.tooltip').remove();
    }).mousemove(function(e) {
          var mousex = e.pageX + 20; //Get X coordinates
          var mousey = e.pageY + 10; //Get Y coordinates
          $('.tooltip').css({ top: mousey, left: mousex })
    });
});
</script>
4

2 に答える 2

2

titleぼかしの要素に属性を追加し直す理由はわかりません。jQueryメタデータに保存されています。私の推測では、IEがまだそれを表示しているのはそのためです。行を削除します

        $(this).attr('title', $(this).data('tipText'));

それで問題が解決するかどうかを確認します。


編集:それはいくつかの要件を逃しました。これはテストされていませんが、機能する可能性があります。

$(document).ready(function() {
    $('.masterTooltip').each(function() {
        var title = $(this).attr('title');
        $(this).data('tipText', title).removeAttr('title');
    }).hover(function(){
        $('<p class="tooltip"></p>')
        .text($(this).data('tipText'))
        .appendTo('body')
        .fadeIn('slow');
    }, function() {
        $('.tooltip').remove();
    }).mousemove(function(e) {
        var mousex = e.pageX + 20;
        var mousey = e.pageY + 10;
        $('.tooltip')
        .css({ top: mousey, left: mousex })
    });
}); 

これはブロック内で$(this)2回呼び出されるため、最適でeachはありませんが、修正するのは簡単です。

于 2012-07-10T11:03:18.780 に答える
0

IEまたは他のブラウザの左/右下に表示されるデフォルトのツールチップを無効にする簡単な解決策があります。[デフォルトのツールチップが私が言及したものと同じ場合]

簡単なJavaScript関数を書くだけです

function GoToLink()
    {
        location.href = "mypage.htm";
    }

次のようなタグでこの関数を呼び出します

<a id="204" name="wow" class="SettPage" href="" onclick="GoToLink()">
于 2013-09-19T06:24:08.027 に答える