如何在更改事件中自行提交 web2py 组件
How to self-submit a web2py-component at change-event
我加载了两个不同的组件 (A,B),我可以在其中将元素从 A 拖放到 B。
是否可以在组件 B 上触发 "self-submit" 并在拖动目标容器更改时传递参数?
提前致谢。
编辑 1:
components 是非常简单的解决方案,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!");});
您可以使用类似以下内容来回答您的拖动事件:
web2py_component("/app/default/comp_b.load?yourpar=1","comp_b_id");
其中 comp_b_id 是没有 #
的 component_b 的 ID
根据 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>
我加载了两个不同的组件 (A,B),我可以在其中将元素从 A 拖放到 B。
是否可以在组件 B 上触发 "self-submit" 并在拖动目标容器更改时传递参数? 提前致谢。
编辑 1: components 是非常简单的解决方案,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!");});
您可以使用类似以下内容来回答您的拖动事件:
web2py_component("/app/default/comp_b.load?yourpar=1","comp_b_id");
其中 comp_b_id 是没有 #
的 component_b 的 ID根据 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>