Добавьте 1 в z-index для совместимости с IE - PullRequest
0 голосов
/ 17 ноября 2011

Я собираю карту, используя Рафаэля. То, что у меня есть, работает в Chrome и Firefox, но как я могу сделать это совместимым с IE? Вот ссылка на мою тестовую карту. http://www.imsmfg.com/imsepracks/sales-reps.php

Вот код JavaScript:

st[0].onclick = function () {       
    var maxZ = Math.max.apply(null,$.map($("#paper > *"), function(e,n){
           if($(e).css("position")=="absolute")
                return parseInt($(e).css("z-Index"))||1 ;
           })
    );

    document.getElementById(current).style.display = "block";
    document.getElementById(current).style.zIndex = maxZ+1;

    current = state;
};

Ответы [ 2 ]

0 голосов
/ 17 ноября 2011

Одна вещь, которую я могу вам сказать, это то, что в IE элемент, появляющийся ниже в разметке (но не дочерний элемент от того же родителя), всегда будет иметь более высокий z-индекс. Для этого есть два возможных решения:

1) переработать код, чтобы не полагаться на z-index (absolute позиционированные элементы должны всегда появляться поверх relative или static в любом случае)

2) физически переместите позиционированный элемент div внизу тела документа.

Также ваши maxZ вычисления выглядят неловко и грязно. Вы уверены, что max() действительно работает с произвольным массивом значений (т. Е. С количеством элементов более 2)? В IE, более конкретно.

Если вам нужна дополнительная помощь, опубликуйте разметку.

0 голосов
/ 17 ноября 2011

Я получаю сообщение об ошибке в моей консоли IE на IE8: объект не поддерживает это свойство или метод - строка 31 в imsep.js

   $(function() {
            $("#accordion").accordion({
                autoHeight: false,
                navigation: true,
                active: false,
                collapsible: true
            });
        });

Из того, что я видел, проблема заключается в настройкедисплей: блок;так что это может быть связано с этой ошибкой js.

Редактировать: Когда я устанавливаю блок отображения вручную через инспектор ie dom, я вижу div.

Edit2: Я не нахожу #accordionна вашей странице вы можете сделать что-то вроде:

$(function() {
      if($("#accordion").length > 0)
            $("#accordion").accordion({
                autoHeight: false,
                navigation: true,
                active: false,
                collapsible: true
            });
    });
...