事件在Firefox中不起作用

时间:2015-02-05 17:59:53

标签: javascript jquery

// Private
    makeRowsDraggable: function() {
        var dragInitiated = false;
        var startPageX, startPageY;
        var moving;

        var me = this;

        $(this.el).interactable({
            start: function(e) {
                if (e.which > 1 || me.disabled)
                    return true;

                moving = $(e.target).closest(".draggable")[0];
                if (!moving)
                    return true;
                moving = $(moving).closest("tr")[0];

                dragInitiated = false;
                startPageX = e.pageX;
                startPageY = e.pageY;

                return false;
            },

            move: function(e) {
                // If value updates during a drag the row might disappear
                if (!moving.parentNode)
                    return;

                var DRAG_TOLERANCE = 4;

// this line shows its event is not defined
                if (!dragInitiated && (Math.abs(event.pageX - startPageX) > DRAG_TOLERANCE || Math.abs(event.pageY - startPageY) > DRAG_TOLERANCE))
                    dragInitiated = true;

                if (dragInitiated) {
                    var $rows = $(me.el).find(".glut-list-item");
                    var y = e.pageY;
                    for (var i = 0; i < $rows.length; i++) {
                        var top = $($rows[i]).offset().top;
                        var height = $rows[i].offsetHeight;
                        if (y < top + height / 2)
                            break;
                    }

                    var insertBefore = $rows[i];
                    if (insertBefore) {
                        if (insertBefore == moving || insertBefore.previousSibling == moving)
                            return false;
                    } else if ($rows[i - 1] == moving)
                        return false;

                    moving.parentNode.insertBefore(moving, insertBefore);

                    me.refreshValue({ edit: true, dom: false });

                    return false;
                }
            },

            stop: function() {
                if (dragInitiated)
                    return false;
            }
        });
    },

错误是未定义事件。

2 个答案:

答案 0 :(得分:0)

您应该使用e.pageX, e.pageY而不是event.pageX, event.pageY,因为在回调中您使用e作为参数。

答案 1 :(得分:0)

您正在调用传递给move函数e的变量,后来将其称为event。您只需将event替换为引发错误的行中的e

相关问题