http://jsfiddle.net/mjmitche/gq6En/78/
在这个小提琴中,如果将橙色框拖到白色框中,石灰和黑色框会淡出。然而,即使(显然有效的 - 根据JSLint)代码指示它,石灰盒也不会淡入。
1)石灰盒是不是因为它是黑盒子的孩子而淡入,并且父黑盒已经消失了?
2)有没有办法让儿童石灰盒重新出现而不会让父黑盒子可见?
答案 0 :(得分:2)
1。)是的 - 您可以通过将#black
div添加到第二个选择器来测试:
drop: function (event, ui) {
$(this)
.addClass ("ui-state-highlight")
.find ("p")
.html("dropped");
$("#lime, #black").fadeOut(1000, function(){ // Only #black needed here
$("#lime, #black").fadeIn(1000); // Only #black needed here as well
});
这会让#lime
回来(不幸的是,还有黑色)。
2。)我不确定如何攻击这个因为你试图建立的逻辑,但你可能需要将#black
属性更改为空(更改类时它是通过使其透明或某种东西隐藏起来并将其淡化,使其外观消失?
答案 1 :(得分:2)
是的,#black
有display: none;
继承所有后代 - 其中包括#lime
。
是的,如果您将其重新挂在#black
元素之外。当它是不可见元素的后代时,永远不会可见。
Demo取代......
$("#lime").fadeIn(1000);
...与...
$("#lime").insertAfter("#black").fadeIn(1000); // Reattach after `#black`. This will manipulate the DOM!
...为了证明第1点和第2点:)
答案 2 :(得分:1)
我认为你不能在不退缩#black的情况下做到这一点。 但是,您可以在淡入淡出#pink之前将#black的背景更改为none。 我编辑了你的小提琴/
这就是你要找的东西; http://jsfiddle.net/gq6En/93/