我在玩jQuery和拖放功能。我有一个div
在CSS中设置为hidden
。当激活拖动元素时,应通过将display
设置为inline
(这是默认值)来显示droppable
元素。将显示设置为无时显示div
然而,display: inline;
不会推翻display: none;
。如何做到这一点(通过jQuery或CSS)?
我当前的代码:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>jQuery UI Droppable - Visual feedback</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script>
<style>
#draggable2 { width: 90px; height: 90px; padding: 0.5em; float: left; margin: 10px 10px 10px 0; }
#droppable2 { width: 120px; height: 120px; padding: 0.5em; float: left; margin: 10px; }
#droppable { border-width: 3px; border-style: solid; border-color: #585FCC; height: 20px; display: none; }
.droppable-highlight { display: inline; }
h3 { clear: left; }
</style>
<script>
$(function() {
$("#draggable2").draggable();
$("#droppable").droppable({
accept: "#draggable2",
activeClass: "droppable-highlight",
drop: function(event, ui) {
$(this)
.addClass("ui-state-highlight")
.find("p")
.html("Dropped!");
}
});
});
</script>
</head>
<body>
<h3>Feedback on activating draggable:</h3>
<div id="draggable2" class="ui-widget-content">
<p>Drag me to my target</p>
</div>
<div id="droppable" >
<p>Drop here</p>
</div>
</body>
</html>
Tinker.io链接:http://tinker.io/bf197
这是因为ID选择是更具体的比类选择(因此需要更高的优先级)。你将不得不通过'.css()'方法来设置它。 – Terry 2013-04-08 09:09:56
@Terry你能告诉我这是怎么完成的吗?我想在'droppable()'部分。我对此很新。 – Devator 2013-04-08 09:12:02
@Devator:据我所知,问题在于这个类没有被添加(我只是为了这个实验处理了特殊性问题 - 将CSS规则的选择器更改为了##droppable.droppable-highlight ')。但是看着Chrome的开发工具中的元素,我没有看到这个类被添加到droppable中,尽管在文档中我认为应该发生什么。 – 2013-04-08 09:15:08