如何在change-event

时间:2015-05-11 16:31:31

标签: javascript web2py dragula

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

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

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

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

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

2 个答案:

答案 0 :(得分:1)

您可以使用以下内容回答您的拖动事件:

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

其中comp_b_id是没有#

的component_b的id

答案 1 :(得分:0)

使用Massimilianos提示和this answer我提出了这个解决方案:

组件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>