[英]append to div one time
I am revisiting this code I made a year ago with the help of another person. 我正在重新审视一年前在另一个人的帮助下制作的这段代码。 Unfortunately I don't have contact with them anymore to get more help.
不幸的是,我不再与他们联系以获得更多帮助。 Basically It dynamically adds classs to the
tb
and b
nodes of a document coming from namesToChange
. 基本上它动态地将类添加到来自
namesToChange
的文档的tb
和b
节点。 Now what I am trying to do is append some text to the div
with class dtxt
node but still use this code below. 现在我要做的是将一些文本附加到具有类
dtxt
节点的div
,但仍然使用下面的代码。 I am using the code $('td.pn_adm_jeff').children('div.dtxt').append('zzz');
我使用代码
$('td.pn_adm_jeff').children('div.dtxt').append('zzz');
and it works but it constantly appends more than once as seen in the photo below. 并且它可以工作,但它不断地附加不止一次,如下图所示。 How do I go about making it add once and stop?
如何让它添加一次并停止?
Photo http://img6.imageshack.us/img6/5392/7c23ddb145954aefadb1b9f.png 照片 http://img6.imageshack.us/img6/5392/7c23ddb145954aefadb1b9f.png
Code 码
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);
Update 更新
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);
use setTimeout rather than setInterval (interval is for repeating a timer task, timeout is a single timer task) 使用setTimeout而不是setInterval(interval用于重复计时器任务,timeout是单个计时器任务)
To prevent a certain task from occuring more than once in a repeated task, there is a simple fix. 为了防止某个任务在重复任务中出现多次,有一个简单的解决方法。
// global variable
var needsUpdate = true;
// now in the timer task
if (needsUpdate) {
$('td.pn_adm_jeff').children('div.dtxt').append('zzz');
needsUpdate = false;
}
Does that work for you? 那对你有用吗?
Define a global variable to hold the input flag 定义一个全局变量来保存输入标志
var appended = false;
function appendthestring() {
if(!appended) $('td.pn_adm_jeff').children('div.dtxt').append('zzz');
appended = true;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.