首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果函数激活多次,则停止输出打印多次。

如果函数激活多次,则停止输出打印多次。
EN

Stack Overflow用户
提问于 2014-12-04 06:11:48
回答 2查看 707关注 0票数 1

我正在使用Jquery onclick按钮激活javascript函数:

代码语言: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/

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-04 06:18:26

当单击按钮一次时,可以使用jQuery .data()函数设置标志,只有在未设置标志的情况下才能继续。

守则:

代码语言:javascript
运行
复制
$('#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);
        })
    }
});
票数 1
EN

Stack Overflow用户

发布于 2014-12-04 06:22:44

使用jQuery事件绑定方法one

代码语言:javascript
运行
复制
$('#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);
        })
   }
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27287470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档