Мой код всплывающей подсказки отображает «Подсказка не определена» в IE 8, когда должна отображаться подсказка. - PullRequest
0 голосов
/ 03 августа 2011

В моем коде подсказки инструмента отображается «Совет не определен» в IE 8, когда должна отображаться подсказка. Следующий код работает для всех других браузеров.

// Это мой код

jQuery(".tiptrigger").hover(function(){
    tip = jQuery('#tool_content');
    tip.show(); //Show tooltip
}, function() {
    tip.hide(); //Hide tooltip
}).mousemove(function(e) {
    var mousex = e.pageX + 20; //Get X coodrinates
    var mousey = e.pageY + 20; //Get Y coordinates
    var tipWidth = tip.width(); //Find width of tooltip
    var tipHeight = tip.height(); //Find height of tooltip

    //Distance of element from the right edge of viewport
    var tipVisX = jQuery(window).width() - (mousex + tipWidth);
    //Distance of element from the bottom of viewport
    var tipVisY = jQuery(window).height() - (mousey + tipHeight);

    if ( tipVisX < 20 ) { //If tooltip exceeds the X coordinate of viewport
        mousex = e.pageX - tipWidth - 20;
    } if ( tipVisY < 20 ) { //If tooltip exceeds the Y coordinate of viewport
        mousey = e.pageY - tipHeight - 20;
    }
    tip.css({  top: mousey, left: mousex });
});




    <p class="tiptrigger">Sample Tool tip
        <div id="tool_content" class="tip" style="display: none;">
                    Welcome
        </div>
    </p>

Ответы [ 2 ]

1 голос
/ 03 августа 2011

Похоже, вы используете tip как глобальную переменную.Попробуйте это

var tip = null;
jQuery(".tiptrigger").hover(function(){
    if(!tip)
      tip = jQuery('#tool_content');
    tip = jQuery('#tool_content');
    tip.show(); //Show tooltip
}, function() {
    if(!tip)
      tip = jQuery('#tool_content');
    tip.hide(); //Hide tooltip
}).mousemove(function(e) {
    if(!tip)
      tip = jQuery('#tool_content');
    var mousex = e.pageX + 20; //Get X coodrinates
    var mousey = e.pageY + 20; //Get Y coordinates
    var tipWidth = tip.width(); //Find width of tooltip
    var tipHeight = tip.height(); //Find height of tooltip

    //Distance of element from the right edge of viewport
    var tipVisX = jQuery(window).width() - (mousex + tipWidth);
    //Distance of element from the bottom of viewport
    var tipVisY = jQuery(window).height() - (mousey + tipHeight);

    if ( tipVisX < 20 ) { //If tooltip exceeds the X coordinate of viewport
        mousex = e.pageX - tipWidth - 20;
    } if ( tipVisY < 20 ) { //If tooltip exceeds the Y coordinate of viewport
        mousey = e.pageY - tipHeight - 20;
    }
    tip.css({  top: mousey, left: mousex });
});
0 голосов
/ 03 августа 2011

Исходя из вашего примера, попробуйте:

var tip = jQuery('#tool_content');

jQuery(".tiptrigger").hover(function(){
   tip.show(); //Show tooltip
   //rest of your code
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...