* fix testcase steps sortable not work in firefox.

This commit is contained in:
Catouse
2017-03-03 17:19:52 +08:00
parent c162d18eb1
commit 4bdc57c2bb
+33 -19
View File
@@ -165,32 +165,46 @@ function initSteps(selector)
};
var initSortable = function()
{
clearTimeout(initSortableCallTask);
initSortableCallTask = setTimeout(function()
var isMouseDown = false;
var $moveStep = null, moveOrder = 0;
$steps.on('mousedown', '.btn-step-move', function()
{
var $oldSteps = $steps.children('.step');
var $newSteps = $oldSteps.clone();
$oldSteps.remove();
$steps.append($newSteps);
$steps.sortable(
isMouseDown = true;
$moveStep = $(this).closest('.step').addClass('drag-row');
$(document).off('.sortable').one('mouseup.sortable', function()
{
selector: 'tr.step',
dragCssClass: 'drag-row',
trigger: '.btn-step-move',
finish: function(e)
{
e.element.addClass('drop-success');
setTimeout(function(){$steps.find('.drop-success').removeClass('drop-success');}, 800);
refreshStepsID();
}
isMouseDown = false;
$moveStep.removeClass('drag-row');
$steps.removeClass('sortable-sorting');
$moveStep = null;
});
$steps.children('.step-new').removeClass('step-new').last().find('textarea:first').focus();
}, 100);
$steps.addClass('sortable-sorting');
}).on('mouseenter', '.step:not(.drag-row)', function()
{
if(!isMouseDown) return;
var $targetStep = $(this);
$steps.children('.step').each(function(idx)
{
$(this).data('order', idx);
});
moveOrder = $moveStep.data('order');
var targetOrder = $targetStep.data('order');
if(moveOrder === targetOrder) return;
else if(targetOrder > moveOrder)
{
$targetStep.after($moveStep);
}
else if(targetOrder < moveOrder)
{
$targetStep.before($moveStep);
}
refreshStepsID();
});
}
$steps.on('click', '.btn-step-add', function()
{
insertStepRow($(this).closest('.step'));
initSortable();
refreshStepsID();
}).on('click', '.btn-step-delete', function()
{