2016-11-09 7 views
0

не могли бы вы помочь мне, как исправить этот код, чтобы заставить его работать в firefox и IE?javascript show/hide не работает в firefox и IE

Если вы уронили Card2 -> card3 не будет отображаться в светлячок

$(".stackDrop").droppable({ 
    tolerance: "intersect", 
    accept: ".card1, .card2", 
    activeClass: "ui-state-default", 
    hoverClass: "ui-state-hover", 
    drop: function(event, ui) { 
     $(this).append($(ui.draggable)); 
     if($(event.toElement).hasClass("card1")){ $('.card2').hide(); }; 
     if($(event.toElement).hasClass("card2")){ $('.card3').show(); }; 
    } 
    });  

Существует прямая связь с jsfiddle: https://jsfiddle.net/70x2set8/3/

+0

Добавить более подробную информацию или код примера, где проблема? – Griva

+0

Здравствуйте, я только что загрузил jsfiddle с моей проблемой ... Это не работает в firefox и т. Д. –

ответ

1

У меня сложилось впечатление, что весь пример здесь делается плохо. Я не уверен, какова ваша цель, но есть общая проблема с событиями в браузерах.

Иногда хром, FF, IE и т. Д. Отображаются события неправильным образом или имеют разные имена свойств.

В вашем примере свойство .toElement в FF не определено, поэтому его не работает.

Вы можете исправить это, заменив его на event.originalEvent.target. https://jsfiddle.net/x25wjs6j/

if($(event.originalEvent.target).hasClass("card1")){ $('.card2').hide(); }; 
    if($(event.originalEvent.target).hasClass("card2")){ $('.card3').show(); }; 

Кроме того, проверьте версию Jquery. Первый набор версий jQuery поддерживает IE и другие старые вещи, а другой не использует некоторые новые функции. Проверьте это - он может начать работу после изменения версии jQuery.

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

+0

Я не знаю, как выразить благодарность, но я так рад! Я впечатлен вашими знаниями! бесконечно благодарен!! –