我正在构建一个 django 站点,并在我的一个页面中实现了 redips.drag 库,以允许拖动表格行。我想在我的代码中添加一个非常简单的功能 - 添加一个侦听器,因此当删除行时,它将行数据发送到服务器。说 jQuery,是这样的:
$(function() {
$(someDomElement).on('DropEvent', function() {
// send data to server
};
});
但问题是 redips.drag 不是一个 jQuery 插件,而是一个 javascript 插件,所以我的知识有点(多于一点)缺乏。我可能可以找到其他一些库,但它的性能非常好,我更喜欢了解如何使用它而不是寻找不同的库。
我大概可以自己处理“将数据发送到服务器”部分,我完全无法理解的是如何“捕获” drop 事件,我听 dom 的哪个部分?我尝试将 monitorEvents 添加到不同的选择器,但完全失败了。
我还尝试操作 script.js 文件(初始化行处理的文件),但也失败了。这是我正在使用的一个(redips 包中的示例 20):
"use strict";
// define redips object container
var redips = {};
redips.init = function () {
// reference to the REDIPS.drag library and message line
var rd = REDIPS.drag,
msg = document.getElementById('msg');
// initialization
rd.init();
//
// ... more irrelevent code ...
//
// row event handlers
//
// row clicked (display message and set hover color for "row" mode)
rd.event.rowClicked = function () {
msg.innerHTML = 'Clicked';
};
// row row_dropped
rd.event.rowDropped = function () {
msg.innerHTML = 'Dropped';
};
// and so on...
};
// function sets drop_option parameter defined at the top
redips.setRowMode = function (radioButton) {
REDIPS.drag.rowDropMode = radioButton.value;
};
// add onload event listener
if (window.addEventListener) {
window.addEventListener('load', redips.init, false);
}
else if (window.attachEvent) {
window.attachEvent('onload', redips.init);
}
现在我尝试将 console.log('hello') 添加到 rd.event.rowDropped 函数(就在 msg.innerHTML 行的正上方),但这不起作用,我删除了该行并且日志中没有显示任何内容。在 init 函数之外做一个 console.log 是可行的,所以我知道脚本可以将东西传递给控制台。
请问,谁能帮帮我?我完全失去了...