我正在开发一种数字教科书功能,该功能允许学生单击链接以打开一个简单的 div 表单,供他们输入对该特定问题的答案。弹出表单只是简单的 HTML/CSS,带有一些 jQuery UI 来隐藏、显示和使其可拖动。这是转折点。我有多个问题,每个问题都需要附加到一个唯一的 div 上。没问题,我想。我将设置每个 href 以链接回我在 DIV 中分配的唯一 ID。问题是,我似乎无法使用相应的 a href 来定位正确的 DIV。相反,无论单击哪个链接,都会出现相同的问题集。这看起来超级简单,我可能过于复杂了。我可以在这里做什么?
HTML:
<div id="draggable" class="messagepop pop">
<form method="post" id="new_message" action="/answers">
<p><label for="body">What type of person is Carsten?</label><textarea rows="15" name="body" id="body" cols="55"></textarea></p>
<p><label for="body">How do you know?</label><textarea rows="15" name="body" id="body" cols="55"></textarea></p>
<p><center><input type="submit" value="Submit" name="commit" id="message_submit"/> or <a id="hide" href="#">Cancel</a></center></p>
</form>
</div>
<div id="draggable" class="messagepop pop">
<form method="post" id="new_message" action="/answers">
<p><label for="body">What can you learn about an active volcano from the photograph?</label><textarea rows="15" name="body" id="body" cols="55"></textarea></p>
<p><center><input type="submit" value="Submit" name="commit" id="message_submit"/> or <a id="hide" href="#">Cancel</a></center></p>
</form>
</div>
<a href="#" id="show">Draw Conclusions</a> What kind of person is Carsten? How do you know?
<a href="#" id="show">Use Text Features</a> What can you learn about an active volcano from the photograph?
其中第一个 a href 需要打开第一个 div,第二个 a href 打开第二个 div,依此类推。
CSS:
.messagepop {
overflow-y: auto;
overflow-x: hidden;
cursor:default;
display:none;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
text-align:left;
width:394px;
height: 335px;
z-index:50;
padding: 25px 25px 20px;
background-color: #fff;
-moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
-moz-border-radius: 4px 4px 4px 4px;
-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
-webkit-border-radius: 4px 4px 4px 4px;
border-color: #E5E5E5 #DBDBDB #D2D2D2;
border-style: solid;
border-width: 1px;}
JS:
$(document).ready(function() {
$('.show').click(function() {
if ( !$(this).next('div').is(':visible') ) {
$(".messagepop").slideFadeToggle();
$(this).next('div').slideFadeToggle();
}
});
$('.hide').click(function() {
$(this).parent().slideFadeToggle();});
$.fn.slideFadeToggle = function(easing, callback) {
return this.animate({ opacity: 'toggle', height: 'toggle' }, "fast", easing, callback);};
$(function() {
$("#draggable").draggable();});