为了让我的代码更具可读性和更简单,我对这段代码感到不满:
#include "stdheader.h"
#include "Atom.h"
Atom **atominfo(FILE *fp1,size_t nbytes,char *my_string,Ljcoeff *lj, int natoms) {
int i;
Atom **atom=(Atom **) malloc(sizeof(Atom *)*natoms);
// printf("%d\n",natoms);
for (i = 0; i < natoms; i++) {
atom[i]=(Atom *) malloc(sizeof(Atom));
atom[i]->natoms=natoms;
atom[i]->eps=lj->eps[i];
atom[i]->sigma=lj->sigma[i];
getline(&my_string, &nbytes, fp1);
sscanf(my_string, "%d %*d %lf %lf %lf %lf\n", &atom[i]->id, &atom[i]->x,
&atom[i]->y, &atom[i]->z, &atom[i]->q);
// printf("%d %d %lf %lf %lf %lf\n",i+1,atom[i]->id,atom[i]->x,atom[i]->y,atom[i]->z,atom[i]->q);
}
return atom;
}
void free_atom(Atom **atom)
{
int i;
for(i=0;i< atom[i]->natoms;i++){
//printf("%d\n",atom[i]->natoms-1);
free(atom[i]);
}
free(atom);
}
虽然这确实有效,但我觉得有一个函数太多,即var refresh = setInterval(datumTijd, 1000);
function datumTijd() {
document.getElementById("tijd1").innerHTML = tijd();
document.getElementById("tijd2").innerHTML = tijd();
}
function tijd(){
var d1 = new Date(),
minutes = d1.getMinutes().toString().length == 1 ? '0'+d1.getMinutes() : d1.getMinutes(),
hours = d1.getHours().toString().length == 1 ? '0'+d1.getHours() : d1.getHours();
return hours+ ':' +minutes;
}
- 位,我更新了两个不同的document.getElementById
。我因为<div>
代码而陷入困境,我无法找到摆脱这一部分的方法。
我的尝试:
return
但没有回来:(
答案 0 :(得分:2)
在将任何内容放入innerHTML
之前,您已从该功能返回。而且你也在innerHTML
中添加了错误的内容。
function tijd(){
var d1 = new Date(),
minutes = d1.getMinutes().toString().length == 1 ? '0'+d1.getMinutes() : d1.getMinutes(),
hours = d1.getHours().toString().length == 1 ? '0'+d1.getHours() : d1.getHours(),
time = hours+ ':' +minutes;
document.getElementById("tijd1").innerHTML = time;
document.getElementById("tijd2").innerHTML = time;
}
我没有真正看到将创建时间字符串的函数与将其放在innerHTML中的函数分开的问题,就像在原始代码中一样。你可能有其他地方需要花时间,所以值得将它分成自己的功能。我对原始代码进行的唯一更改是使用变量而不是两次调用函数:
function datumTijd() {
var time = tijd();
document.getElementById("tijd1").innerHTML = time;
document.getElementById("tijd2").innerHTML = time;
}
您还有使用jQuery标记的问题,因此您可以使用以下内容简化分配:
function datumTijd() {
$("#tijd1, #tijd2").text(tijd());
}