javascript - 追加到 div 一次

标签 javascript jquery html dom

我正在重新审视一年前在另一个人的帮助下编写的这段代码。不幸的是,我无法再与他们联系以获取更多帮助。基本上,它动态地将类添加到来自 namesToChange 的文档的 tbb 节点。现在我想做的是将一些文本附加到带有类 dtxt 节点的 div 中,但仍然使用下面的代码。我正在使用代码 $('td.pn_adm_jeff').children('div.dtxt').append('zzz'); 它可以工作,但它会不断附加多次,如下面的照片。我该如何让它添加一次并停止?

照片 http://img6.imageshack.us/img6/5392/7c23ddb145954aefadb1b9f.png

代码

   function customizefields(a) {
        $('td b').each(function () {
            name = $(this).text();
            if (name.indexOf(" ") != -1) {
                name = name.substring(0, name.indexOf(" "))
            }
            if (a[name]) {
                this.className = a[name].class;
                this.parentNode.className = a[name].img
            }
        })
        $('td.pn_adm_jeff').children('div.dtxt').append('zzz');
    }

    var namesToChange = {
        'Jeff'    :{'class':'pn_adm','img':'pn_adm_jeff'}
    };

    setInterval(function () {
        customizefields(namesToChange)
    }, 1000);

更新

var needsUpdate = true;

function customizefields(a) {
    $('td b').each(function () {
        name = $(this).text();
        if (name.indexOf(" ") != -1) {
            name = name.substring(0, name.indexOf(" "));
        }
        if (a[name]) {
            this.className = a[name].class;
            this.parentNode.className = a[name].img;
        }
    });
    if (needsUpdate) {
        $('td.pn_adm_jeff').children('div.dtxt').append('testing');
        needsUpdate = false;
    }
}

var namesToChange = {
    'jeff'    :{'class':'pn_adm','img':'pn_adm_jeff'};
};

setTimeout(function () {
    customizefields(namesToChange);
}, 1000);

最佳答案

使用setTimeout而不是setInterval(interval是为了重复一个定时器任务,timeout是单个定时器任务)

为了防止某个任务在重复任务中多次发生,有一个简单的修复方法。

// global variable
var needsUpdate = true;

// now in the timer task
if (needsUpdate) {
    $('td.pn_adm_jeff').children('div.dtxt').append('zzz');
    needsUpdate = false;
}

这对你有用吗?

关于javascript - 追加到 div 一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10158402/

相关文章:

javascript - 如何在同一端口上启动 react 和 Node api 服务器?

jquery - 如何在不触发history.js中的statechange的情况下更改状态?

html - 将可变宽度的 div 居中放置在左侧 : x%

javascript - 在添加新标记之前删除以前的标记

javascript - 如何将这些数据存储在 cookie 中?

javascript - 将js数组转换为字典映射

JavaScript - 如何将不同文件中的函数添加到类中?

javascript - Couchdb 从文档中的两个数组发出文档

php - 提交表单时,Post 方法的作用类似于 get 方法

javascript - 我在将数字相乘然后求和时遇到问题。 。