【发布时间】:2017-10-06 16:28:02
【问题描述】:
我是编程新手,我正在尝试用 Javascript 编写待办事项列表,并且正在尝试使用 JQuery。我在网上找到了一个我想在列表中实现的删除线动画,但我不太确定这两行代码的作用,想知道是否有人可以为我详细说明以便我更好地理解?删除线功能如下:
//var _Text sets the _Text to the individual list item
var _text = document.getElementById("item_" + cbId);
$(document).ready(function() {
_text = $(itemText).text();
StrikeThrough(0);
});
//Strikethrough animation function
function StrikeThrough(index) {
if (index >= _text.length)
return false;
var sToStrike = _text.substr(0, index + 1);
var sAfter = (index < (_text.length - 1)) ? _text.substr(index + 1,
_text.length - index) : "";
$(itemText).html("<strike>" + sToStrike + "</strike>" + sAfter);
window.setTimeout(function() {
StrikeThrough(index + 1);
}, 100);
我感到困惑的两行是:
var sToStrike = _text.substr(0, index + 1);
var sAfter = (index < (_text.length - 1)) ? _text.substr(index + 1, _text.length - index) : "";
我特别困惑的是这些变量的确切设置
【问题讨论】:
-
第一行调用
substr(),用于获取字符串的一部分。第二行是一个ternary expression,它是一个浓缩的if条件。 -
有时理解代码的最佳方法是使用 JS 调试器,例如,在有问题的行之前放置
debugger语句,然后在 JS 控制台中进行试验。
标签: javascript jquery strikethrough