Очистка .appendTo, когда элемент не находится над - PullRequest
0 голосов
/ 18 августа 2011

Хорошо, поэтому я использовал .appendTo для решения проблемы переполнения: скрыто, так что вся моя подсказка будет отображаться вне содержащего div.Тем не менее, он фиксирует всплывающую подсказку на месте после того, как элемент был наведен.Как мне очистить .appendTo, чтобы скрыть всплывающую подсказку.

$(this).hover(function(){
var pos = $.extend({}, $(this).offset(), {width: this.offsetWidth, height:        this.offsetHeight});
$(this).children('.browse-tip').css({top: -40, left: pos.left - pos.width / 2});
$(this).children('.browse-tip').show();
$(this).children('.browse-tip').appendTo('#browse_wrap');
},function() {
$(this).children('.browse-tip').hide();
});

1 Ответ

0 голосов
/ 18 августа 2011

Вся эта структура усложняет вашу работу. Я рекомендую иметь независимый элемент, который вы можете перемещать по странице, переключаясь при необходимости, и просто помещать в него соответствующую информацию, прежде чем показывать:

<div id="popup"></div>

<style>
#popup {
    position: absolute;
    display: none;
    z-index: 999999;
    width: 220px;
    height: 200px;
}

#popup .browse-tip {
    display: block;
}
</style>

<script>
$(this).hoverIntent(function(){
    var pos = $.extend({}, $(this).offset(), {width: this.offsetWidth, height: this.offsetHeight});
    $(this).children('.browse-tip').clone().appendTo("#popup");
    $("#popup").css({top: pos.top-40, left: pos.left - pos.width / 2});
    $("#popup").show();
    return true;
},function() {
    $("#popup").hide().children().remove();
    return false;
});
</script>

http://jsfiddle.net/pMSRp/

...