编辑textarea会破坏Droppable

时间:2014-03-04 23:38:48

标签: javascript html drag-and-drop prototypejs scriptaculous

我正在尝试使用prototype / scriptaculous将内容拖到textarea中,编辑文本区域,然后继续拖放更多内容。拖放工作正常,但是一旦我编辑textarea中的内容,drop就会停止工作。

我把它变成test case

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>dragdrop testcase</title>
        <script type="text/javascript" src="/shoppingZend/public/javascript/scriptaculous/lib/prototype.js"></script>       
        <script type="text/javascript" src="/shoppingZend/public/javascript/scriptaculous/src/scriptaculous.js?load=effects,dragdrop,controls"></script>
    </head>
    <body>
        <div id="content_1" class="drag">Content 1</div>
        <div id="content_2" class="drag">Content 2</div>
        <div id="content_3" class="drag">Content 3</div>
        <textarea id="drop"></textarea>
        <script>
            new Draggable('content_1', {
                revert: true
            });

            new Draggable('content_2', {
                revert: true
            });

            new Draggable('content_3', {
                revert: true
            });

            Droppables.add(
                'drop', {
                    onDrop: function(dragged, dropped, event) {
                        dropped.innerHTML += dragged.innerHTML;
                    }
                }
            );
        </script>
    </body>
</html>

如果它是浏览器问题(我怀疑它是):我只在Linux上使用Firefox,它是一个非常私密的网站,不需要在其他地方工作。

知道我可以在哪里开始调试吗?

1 个答案:

答案 0 :(得分:0)

PrototypeJS将textarea作为表单元素处理。所有表单元素都有一个value属性(例如select,input,textarea)。所以,试试Geek Num 88的建议:

dropped.value += dragged.innerHTML;

我尝试使用Chrome,FF和IE,它似乎运行正常。

Domus71