小编Por*_*ori的帖子

onClick函数"this"返回Window对象

我的JavaScript应用程序遇到了棘手的问题.

如果我写这样的元素:

<li onClick="alert(this.tagName)"></li>
Run Code Online (Sandbox Code Playgroud)

我得到"李".

但是,如果我这样做:

<li onClick="foo()"></li>
Run Code Online (Sandbox Code Playgroud)

"foo()"的位置是:

function foo(){ alert(this.tagName); }
Run Code Online (Sandbox Code Playgroud)

我得到"未定义".

我不知道"这个"应该如何适用于附加功能.但是,我感到困惑,因为"这个"没有拿起元素,但显然是默认为"窗口".我无法弄清楚为什么会这样.

有人有解释吗?

javascript window function onclick this

15
推荐指数
1
解决办法
6万
查看次数

初始安装后MongoDB服务无法启动

我正在运行Fedora 20并根据官方文档中的Red Hat安装指南安装MongoDB .我能够运行mongod守护进程没有错误的第一次服务,但是当我关闭了我的机器和回来的时候,拒绝服务,由于一些失败的开始.

在我成功运行后列出的日志中,我看到了:

***** SERVER RESTARTED *****
ERROR: Cannot write pid file to /var/run/mongodb/mongod.pid: No such file or directory
Run Code Online (Sandbox Code Playgroud)

如果我尝试手动启动mongod或运行mongod --repair,我会在启动失败时收到此消息:

ERROR: dbpath (/data/db) does not exist.
Create this directory or give existing directory in --dbpath.
Run Code Online (Sandbox Code Playgroud)

考虑到在我的配置文件中/etc/mongod.conf,数据库路径的设置如下:

dbpath=/var/lib/mongo
Run Code Online (Sandbox Code Playgroud)

最后,如果我运行此命令:

mongod --dbpath /var/lib/mongo
Run Code Online (Sandbox Code Playgroud)

守护进程很好.但是,我无法复制启动服务的无错误行为.

任何人都可以告诉我究竟是什么问题以及如何开始mongod作为服务运行?

编辑

如果我跑,我会收到此消息mongod --config /etc/mongod.conf:

about to fork child process, waiting until server is ready for connections. forked process: 2702 ERROR: …

linux fedora mongodb

14
推荐指数
4
解决办法
4万
查看次数

在for循环中将onClick应用于元素数组

我试图将onClick事件应用于文档中的元素数组,如下所示:

for (var i = 0; i < myElems.length; i++)
     myElems[i].onClick = "someFunction(this)";
Run Code Online (Sandbox Code Playgroud)

代码放在body标签的onLoad事件的init()函数内.我注意到文档加载时,功能不起作用.

我注意到,如果我添加一个alert()来告诉我函数是否是问题:

for (var i = 0; i < myElems.length; i++)
     myElems[i].onClick = "alert('It worked!')";
Run Code Online (Sandbox Code Playgroud)

该文档将加载并执行所有元素的警报,而不考虑我是否实际点击了该元素.

我究竟做错了什么?

javascript loops onclick

5
推荐指数
1
解决办法
8931
查看次数

使用jQuery检查它们的存在时加载图像是行不通的

我有这个功能,应该检查图像的存在,直到他们停止出现,基于他们的标题:

function LoadPictures(){
        const PIC_MAX = 12;

        var i = 1;

        while (i <= PIC_MAX){
            $.ajax({url: "pic" + i + ".jpg",
                type: "HEAD",
                success: function(){
                    $("body").append("<img src='pic" + i + ".jpg' />");
                },
                error: function(){
                    i = PIC_MAX + 1;
                }
            });

            i++;
        }
    }
Run Code Online (Sandbox Code Playgroud)

然而,当我运行该功能时,我得到的只是空白框.我知道循环根据出现的框数量正确计算了现有图像,但无法加载它们.这是为什么?

javascript ajax jquery asynchronous currying

1
推荐指数
1
解决办法
79
查看次数