Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как победить всплывание title в IE? (https://javascript.ru/forum/dom-window/27092-kak-pobedit-vsplyvanie-title-v-ie.html)

SindBad 02.04.2012 15:40

Как победить всплывание title в IE?
 
Вложений: 1
Всем привет.
Хотел приложить скрин, но не судьба :)
Вот код
toolTips: function(){
            $("body").delegate(".toolTips", "mouseover", function(e){
                var text = $(this).attr("title");
                $(this).removeAttr("title");
                var hht = $('#toolTipBlock').height();
                var wth = $('#toolTipBlock').width();
                var dhht = $(document.body).height()-2;
                var dwth = $(document.body).width()-2;
                var idx = 10;
                $(document).bind('mousemove', function(e){
                    var pX, pY;
                    if((e.pageX+wth)>(dwth-idx)){
                        pX = e.pageX - wth - idx;
                    }else{
                        pX = e.pageX+idx;
                    }
                    if((e.pageY+hht)>(dhht-idx)){
                        pY = e.pageY - hht - idx;
                    }else{
                        pY = e.pageY+idx;
                    }
                    $('#toolTipBlock').css({
                        left    : pX+'px',
                        top        : pY+'px'
                    })
                });
                $('#toolTipBlock').text(text).show();
                return false;
            });
            $("body").delegate(".toolTips", "mouseout", function(e){
                $(this).attr("title", $('#toolTipBlock').text());
                $(document).unbind('mousemove');
                $('#toolTipBlock').hide();
                return false;
            });
        }

Во всех браузерах нативные title не всплывают, в ИЕ - всплывают и мои, и нативные поверх. Как подавить?

SindBad 04.04.2012 10:13

Решение подсказали други с Демиарта:
Создаём файл hide-title.htc :
<public:component>
    <public:attach event="onmouseover" onevent="hideTitle();" />
    <script>
        function hideTitle() {
            element.setAttribute("data-title", element.title);
            element.setAttribute("title", "");
        }
    </script>
</public:component>

Подключаем его в документ
.toolTips { behavior:url(hide-title.htc); }

И чуть переделываем скрипт в начале:
if($.browser.msie){
					var _key = "data-title";
				}else{
					var _key = "title";
				}
				if(!$(this).data("title")){
					$(this).data("title", this.getAttribute(_key));
					this.removeAttribute(_key);
				}
				
				var text = $(this).data("title");
//...

Не забываем так же о заголовке файла - если хак не работает, добавляем htaccess:
AddType text/x-component .htc


Часовой пояс GMT +3, время: 17:27.