javascript show/hide 无法在 Firefox 和 IE 中运行

javascript show/hide not working in firefox and IE

你能帮我吗,如何修复这段代码以使其在 firefox 和 IE 中工作?

如果您删除 card2 -> card3 将不会在 firefox 中显示

  $(".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 有一个 link:https://jsfiddle.net/70x2set8/3/

我的印象是这里的整个示例都以糟糕的方式完成。我不确定您的目标是什么,但浏览器中的事件存在普遍问题。

有时 chrome、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 版本后开始工作。

无论如何,下次更好地描述您需要什么以及哪里有无效代码。