如果功能多次激活,请多次停止输出打印
Stop output printing multiple times if function activated more than once
我正在使用Jquery onclick按钮激活一个javascript函数:
$('#on').click(function() {
var a = document.getElementsByTagName('a');
for (i = 0; i < a.length; i++) {
a[i].addEventListener('click', function() {
var span = document.createElement('span');
var text = document.createTextNode(this.innerHTML + " ");
span.appendChild(text);
document.getElementsByClassName('output')[0].appendChild(span);
})
}
});
问题是,如果多次单击按钮,该功能将重复多次。在这种情况下,它将多次打印输出。如何将 javascript 函数修改为每次单击仅打印一个字符?
例:http://jsfiddle.net/874Ljaq1/
使用 jQuery 事件绑定方法one
$('#on').one("click", function() {
var a = document.getElementsByTagName('a');
for (i = 0; i < a.length; i++) {
a[i].addEventListener('click', function() {
var span = document.createElement('span');
var text = document.createTextNode(this.innerHTML + " ");
span.appendChild(text);
document.getElementsByClassName('output')[0].appendChild(span);
})
}
});
您可以使用 jQuery .data()
函数在单击按钮一次时设置标志,并且仅在未设置标志时才继续。
代码:
$('#on').click(function () {
// if we have a flag that indicates this button has been clicked before,
// don't do anything.
if ($(this).data('clicked'))
return;
$(this).data('clicked', true); // set the flag
var a = document.getElementsByTagName('a');
for (i = 0; i < a.length; i++) {
a[i].addEventListener('click', function () {
var span = document.createElement('span');
var text = document.createTextNode(this.innerHTML + " ");
span.appendChild(text);
document.getElementsByClassName('output')[0].appendChild(span);
})
}
});
相关文章:
- 用Koa打印漂亮的HTML输出
- 如何使用 JQuQuery 解析 JSON 对象并在 HTML 页面中以表格格式打印输出
- ajax方法返回错误时如何打印输出
- 两个javascript网络工作者连续打印输出-为什么不同时打印呢
- 在Handlebars.js中的新行上打印输出
- 使用javascript在HTML的输出窗口中打印控制台消息
- 在 nodejs 中有什么方法可以打印 JSON 格式的 log4js 输出
- 如何使用嵌套循环使用 Javascript 打印到外部循环的输出中
- 从 utf-8 代码打印/输出 utf-8 字符
- 在 Javascript 中打印多个 html 文件的输出
- 如何将一页的输出打印到另一页(跨域)
- 打印 Javascript 而不是 ASP(经典)输出
- 如果功能多次激活,请多次停止输出打印
- 模态打印输出的变化
- Node.js打印控制台输出两次
- Jasmine套件未在测试运行输出中正确打印
- JavaScript window.print()提供空白打印输出
- Javascript打印输出
- 正在console.log中打印函数的输出
- Nodejs child_process.exec:在控制台上禁用标准输出打印