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 版本后开始工作。
无论如何,下次更好地描述您需要什么以及哪里有无效代码。
你能帮我吗,如何修复这段代码以使其在 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 版本后开始工作。
无论如何,下次更好地描述您需要什么以及哪里有无效代码。