编辑我简化
out.push('<li>' + clicks[i].target + outputTime + 'm</li>');
}
(".taskList ul li p").html(out.join(''));
到
$(".taskList ul li p").html(outputTime);
/ EDIT 我正在使用带有回调函数的jQuery Jeditable插件来在字段更改时启动计时器。
单击按钮时,计算Jedit和click事件之间的时间,并将值放在编辑后的“..click to edit”文本旁边的dom中,然后将整个Div移动到新的部分,重置计时器并创建一个新的Jeditable实例来代替原始实例。
我的困难在于,我从另一个堆栈溢出帖http://jsfiddle.net/wwnyY/11/上找到的jsfiddle中获取了代码的大部分计时器部分。这样做的输出是在我的结果前面放置一个#字符。
我发现计时器代码正在使用push()方法,而这正在返回一个数组,我猜这是我的额外角色来自的地方。就编程而言,数组是我目前的绊脚石,我想知道是否有人可以解释我如何正确处理数组以删除#或者我可以在下面的代码中替换它(我无法提出外部链接在一个jsfiddle所以发布了代码http://binarygeometry.net/test/index.html)
<div class="row">
<div class="eight columns">
<div class="row taskList">
<ul>
<li>
<div class="nine columns task">
<div class="edit">
..click to edit
</div>
</div>
<div class="three columns time">
<p>00.00</p>
</div>
</li>
</ul>
</div>
<ul class="row doneList">
<li>
</li>
</ul>
</div>
<div class="four columns">
<p><a href="#" class="success button" id="done">Go!</a></p>
</div>
</div>
$(document).ready(function() {
$(".edit").editable("echo.php", {
placeholder : "Click me to edit",
loadtype : "POST",
callback: function(value, settings) {
startTime = new Date().getTime();
console.log(startTime);
}
});
$("#done").click(function(e){
function update_output() {
var out = [],
displayTime;
for (var i = 0, len = clicks.length; i < len; i++) {
displayTime = (clicks[i].time - startTime);
console.log(displayTime);
outputTime = displayTime //* 0.00001666666;
console.log(outputTime);
outputTime = outputTime.toFixed(0);
console.log(outputTime);
out.push('<li>' + clicks[i].target + outputTime + 'm</li>');
}
$(".taskList ul li p").html(out.join(''));
}
var clicks = [];
clicks.push({ time : new Date().getTime(), target : $(this).attr('href') });
update_output();
$(".taskList ul li").appendTo(".doneList")
$(".edit").removeClass("edit").unbind("click.editable");
$("<li><div class='nine columns task'><div class='edit'>..click to edit</div><div class='three columns time'><p></p></div></li>")
.appendTo(".taskList ul");
$(".edit").editable("echo.php", {
placeholder : "Click me to edit",
loadtype : "POST",
callback: function(value, settings) {
startTime = new Date().getTime();
console.log(startTime);
}
});
e.preventDefault();//
});
});
答案 0 :(得分:2)
您不想在网址中添加#
吗?然后在return false;
处理程序的底部添加click
。 (使用而不是e.preventDefault()
)
答案 1 :(得分:0)
通过简化
out.push('<li>' + clicks[i].target + outputTime + 'm</li>');
}
(".taskList ul li p").html(out.join(''));
到
//out.push('<li>' + clicks[i].target + outputTime + 'm</li>');
}
$(".taskList ul li p").html(outputTime);
html()函数不再通过push()方法输出变量,而只是将outputTime变量作为节点插入。