我在使用google chrome中的不同选择元素中的选项元素拖放时遇到问题。
这是我的JSFiddle(在Firefox中正常工作): http://jsfiddle.net/DyAXf/1/
和代码:
<script>
function allowDrop(ev)
{
ev.preventDefault();
}
function drag(ev)
{
ev.dataTransfer.setData("Text",ev.target.id);
}
function drop(ev)
{
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
}
</script>
</head>
<body>
<table style="text-align: left; width: 100%;">
<tbody>
<tr>
<td></td>
<td>
<form>
<select id="taglist1" class="tagdiv" name="taglist1" size=7 ondrop="drop(event)" ondragover="allowDrop(event)">
<option id='giessen' class="dragElement" draggable="true" ondragstart="drag(event)" value="option1">giessen</option>
<option id='giessen2' class="dragElement" draggable="true" ondragstart="drag(event)" value="option2">giessen2</option>
<option id='giessen3' class="dragElement" draggable="true" ondragstart="drag(event)" value="option3">giessen3</option>
<option id='giessen4' class="dragElement" draggable="true" ondragstart="drag(event)" value="option4">giessen4</option>
<option id='giessen5' class="dragElement" draggable="true" ondragstart="drag(event)" value="option5">giessen5</option>
<option id='giessen6' class="dragElement" draggable="true" ondragstart="drag(event)" value="option6">giessen6</option>
</select>
<select id="taglist2" class="tagdiv" name="taglist2" size=7 ondrop="drop(event)" ondragover="allowDrop(event)"></select>
</form>
</td>
</tr>
<tr>
<td></td>
<td>
<form action="game.php" method="post">
<input class="uibutton" type="submit" value="Submit" />
</form></td>
</tr>
</tbody>
</table>
我需要选择元素的原因是因为我想知道在触发表单之后,哪个术语位于选择元素中。 它是某种排序,我想知道哪些术语堆叠在一起。有没有更好的解决方案来处理这个问题?我的代码有问题吗?
提前致谢。
答案 0 :(得分:2)
不确定这是否是一个理想的答案,但似乎谷歌浏览器使用拖放选择项目有问题(在Firefox中正常工作)。我使用jquery可排序交互来处理问题bei,同时通过ajax post发送序列化的信息。