javascript显示/隐藏不在Firefox和IE中工作

时间:2016-11-09 16:04:11

标签: javascript internet-explorer firefox hide show

你可以帮助我,如何修复这段代码,让它在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的链接:https://wooey.herokuapp.com/

1 个答案:

答案 0 :(得分:1)

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

有时,chrome,FF,IE等以错误的方式显示事件或具有不同的属性名称。

在您的示例中,FF中的属性.toElement未定义,这就是为什么它不起作用。

您可以通过将其更改为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版本后开始工作。

无论如何,下次更好地描述你需要什么,以及哪些是不工作的代码。