我有一系列单元格,当点击时克隆并附加到一个单独的表(一行)。当在第二个表中单击单元格时,它们将返回到上一个表中的位置(或者更确切地说,它们将被删除,原始单元格将变为实体。但是我需要第二个表格中的单元格(#answertable
为.sortable()
。我可以将它们移动到查找范围内,但是一旦我放开,原始的点击功能就会被执行并且单元格会消失。
可回收的可排序代码:
$(function () {
$("#answertable tr").sortable();
$("#answertable tr").disableSelection();
});
相关单元格代码(真的fadeOut()
位):
$(answertablecells).click(function(){
var num = $(this).attr("id");
for(var i=12; i < num.length; i++) {
var nums = num.substr(i, i++, i++);
}
$('#in_answerbox' + nums + "a").fadeTo('fast', 1).removeAttr('id');
$(this).fadeOut('slow').removeAttr('id').remove();
});
我点击它时需要运行上述所有内容,但在排序时则不需要。基本上我希望hold取消on click事件,但不取消可排序事件。
有什么建议吗?所有帮助表示赞赏!
答案 0 :(得分:1)
如果持续时间小于某个值,即(250ms),您可以计算点击的持续时间并调用淡出功能:
function myfunction(){
var num = $(this).attr("id");
for(var i=12; i < num.length; i++) {
var nums = num.substr(i, i++, i++);
}
$('#in_answerbox' + nums + "a").fadeTo('fast', 1).removeAttr('id');
$(this).fadeOut('slow').removeAttr('id').remove();
}
var longpress = false, startTime, endTime;
$(answertablecells).on('click', function (e) {
if (!longpress) myfunction();
});
$(answertablecells).on('mousedown', function () {
startTime = new Date().getTime();
});
$(answertablecells).on('mouseup', function () {
endTime = new Date().getTime();
longpress = (endTime - startTime < 250) ? false: true;
});