JavaScript—将函数添加到<;的onclick属性中;a>;无需单击即可运行

JavaScript—将函数添加到<;的onclick属性中;a>;无需单击即可运行,javascript,html,function,onclick,Javascript,Html,Function,Onclick,我有一个函数可以创建一个新的 这个例子起作用了,警报只在点击+时出现,但它是一个内部函数,而不是像我的“more(element)”那样声明的函数 所以我的问题是:是否可以像在我的示例中那样,将onclick属性设置为新创建元素上的声明函数,但阻止它立即运行 (另一篇文章也有一个jQuery答案,但不幸的是,我对jQuery一无所知,无法使用它)是的,只需将其包装在“代理”函数中: plus.onclick = function() { more(spantags.innerHTML);

我有一个函数可以创建一个新的

这个例子起作用了,警报只在点击+时出现,但它是一个内部函数,而不是像我的“more(element)”那样声明的函数

所以我的问题是:是否可以像在我的示例中那样,将onclick属性设置为新创建元素上的声明函数,但阻止它立即运行

(另一篇文章也有一个jQuery答案,但不幸的是,我对jQuery一无所知,无法使用它)

是的,只需将其包装在“代理”函数中:

plus.onclick = function() {
    more(spantags.innerHTML);
};
是的,只需将其包装在“代理”函数中:

plus.onclick = function() {
    more(spantags.innerHTML);
};

当然可以,但首先您必须了解
plus.onclick=more(spantags.innerHTML)
将使用参数
spantags.innerHTML
调用
more
,并将该函数调用返回的结果分配给
plus.onclick

您可以按照前面的建议将其包装在代理函数中,也可以利用
bind
方法将参数绑定到函数本身:

plus.onclick=more.bind(null,spantags.innerHTML)


在这里阅读Bind:

当然,但首先你必须理解
plus.onclick=more(spantags.innerHTML)
将使用参数
spantags.innerHTML
调用
more
,并将该函数调用返回的结果分配给
plus.onclick

您可以按照前面的建议将其包装在代理函数中,也可以利用
bind
方法将参数绑定到函数本身:

plus.onclick=more.bind(null,spantags.innerHTML)


阅读Bind的文章:

哇,太简单了!非常感谢你!哇,太容易了!非常感谢你!这实际上不会有相同的结果。您将绑定spantags.innerHTML的当前值(绑定时为“1”),并且增量永远不会超过2。事实上,这是可行的,因此我也将对此进行一次向上投票,但我不知道第一个参数是什么。我读到这是这个论点的核心,但我还是不明白。我接受了第一个答案,因为它更容易理解。这是“这个”上下文。在回调本身中,使用“this”将引用作为第一个参数传入的任何内容(在本例中为“null”)。这实际上不会产生相同的结果。您将绑定spantags.innerHTML的当前值(绑定时为“1”),并且增量永远不会超过2。事实上,这是可行的,因此我也将对此进行一次向上投票,但我不知道第一个参数是什么。我读到这是这个论点的核心,但我还是不明白。我接受了第一个答案,因为它更容易理解。这是“这个”上下文。在回调本身中,使用“this”将引用传入的任何内容作为第一个参数(在本例中为“null”)。
plus.onclick = function() {
    more(spantags.innerHTML);
};