首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >redips.drag在删除行并发送到服务器时获取行id

redips.drag在删除行并发送到服务器时获取行id
EN

Stack Overflow用户
提问于 2013-09-12 08:08:25
回答 1查看 1.3K关注 0票数 0

我正在构建一个django站点,并在我的一个页面中实现了redips.drag库,以允许拖动表行。我想在我的代码中实现一个非常简单的功能--添加一个侦听器,这样当行被删除时,它就会将行数据发送到服务器。jQuery--大概是这样的:

代码语言:javascript
复制
$(function() {
    $(someDomElement).on('DropEvent', function() {
           // send data to server
    };

});

问题是,redips.drag不是一个jQuery插件,而是一个javascript插件,所以我的知识有点(不止一点)缺乏。我可能可以找到一些其他的库,但它的性能真的很好,我更喜欢了解如何使用它,而不是寻找不同的库。

我大概可以自己处理“发送数据到服务器”的部分,我根本不能理解的是如何“捕捉”drop事件,我该听dom的哪一部分?我尝试将monitorEvents添加到不同的选择器,但完全失败了。

我还尝试操作script.js文件(初始化行处理的文件),但也失败了。下面是我使用的示例( redips包中的示例20 ):

代码语言:javascript
复制
"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);
}

现在,我尝试向rd.event.rowDropped函数(就在msg.innerHTML行的上方)添加一个console.log('hello'),但这不起作用,我删除了该行,并且日志中没有显示任何内容。在init函数之外执行console.log是可行的,因此我知道脚本可以将内容传递到控制台。

有谁能帮帮我吗?我完全不知所措...

EN

回答 1

Stack Overflow用户

发布于 2014-08-12 03:43:14

我知道现在回答你的问题可能有点晚了,但我找到了答案。您需要使用丢弃的事件和属性rd.obj (REDIPS.drag.obj)来获取id,并将其与getAttribute('id')之类的简单javascript一起使用。

代码语言:javascript
复制
redips.init = function () {
// reference to the REDIPS.drag library and message line
var rd = REDIPS.drag,
    msg = document.getElementById('msg');
// initialization
rd.init();

// row clicked (display message and set hover color for "row" mode)
rd.event.clicked = function () {
    msg.innerHTML = 'Clicked' + rd.obj.getAttribute('id');
};
// row row_dropped
rd.event.dropped = function () {
    msg.innerHTML = 'Dropped' + rd.obj.getAttribute('id');
};

};

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18753300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档