You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

页面加载后jQuery的click事件仅生效一次的问题咨询

问题分析与修复方案

嘿,我一眼就瞅出你代码里的问题啦——你在绑定点击事件的时候犯了个很典型的小错误:

你写的是:

$("div.toolbar-item").click(toolbar_click_listener());

这里的问题在于,你给click()方法传的是函数执行的结果(因为加了括号(),页面加载时这个函数就直接跑起来了),而不是函数本身的引用。这就导致点击div的时候根本不会触发这个函数,反而页面一加载它就执行了。

修复方法

基础版(不需要传参数)

直接去掉函数后面的括号,把函数引用传给click():

$("div.toolbar-item").click(toolbar_click_listener);

带参数版

如果你的toolbar_click_listener需要接收参数,那就用匿名函数包裹一下:

$("div.toolbar-item").click(function() {
  // 这里可以传你需要的参数
  toolbar_click_listener("your-parameter");
});

或者用ES6箭头函数(如果你的项目环境支持的话):

$("div.toolbar-item").click(() => toolbar_click_listener("your-parameter"));

额外说明

当你把带括号的函数传给事件绑定方法时,JS会立刻执行这个函数,然后把它的返回值(如果函数有return的话)当作事件处理函数。但我们需要的是让事件触发时才去调用这个函数,所以必须传递不带括号的函数名,也就是函数的引用。

内容的提问来源于stack exchange,提问作者Eugene

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:17:20