0

我加载了两个不同的组件(A,B),我可以将元素从 A 拖放到 B。

是否可以在更改拖动目标容器时触发组件 B 上的“自我提交”并传递参数?提前致谢。

编辑1: 组件是非常简单的解决方案,A显示一个可以拖动元素的列表(并拖放到B),B一开始是空的。我想实现如果将 en 元素放入 B 中,则将元素上的信息传递给控制器​​。

编辑2: 同时我可以在元素被删除时触发一个事件。我使用了一个名为 Dragula ( http://bevacqua.github.io/dragula/ )的小型拖放脚本- 事件触发如下:

dragula([document.querySelector(".draggable"),document.querySelector(".drag-target")]).on("drop", function () { console.log("This Works!");});
4

2 回答 2

1

您可以通过以下方式回答您的拖动事件:

web2py_component("/app/default/comp_b.load?yourpar=1","comp_b_id");

其中 comp_b_id 是没有 # 的 component_b 的 id

于 2015-05-12T08:55:25.587 回答
0

有了 Massimilianos 的提示和这个答案,我想出了这个解决方案:

组件 A(拖动开始的地方)现在包含以下脚本:

<script>
    /* Provides Drag and Drop functionality */
    d = dragula([document.querySelector(".drag-start"), document.querySelector(".drag-target")]);
    d.on('drop', function(el) {
        var test1, test2, id;
        test1 = 'test1'; /* Some information */
        id = $('.drag-target').attr('id'); /* The target ID */
        /* Pass data to the controller */
        $.post("{{=URL('controller', 'function')}}"+"/"+test1);
        /* Reload data to the target id */
        x = web2py_component("/app/controller/function.load"+"/"+id);
    });
</script>
于 2015-05-12T10:48:03.070 回答